From 2905ee4c8de47cfdeea4787e465eb827f9b99e8b Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Thu, 5 Dec 2019 03:00:50 +0000 Subject: CTAN sync 201912050300 --- .../latex/contrib/babel-contrib/italian/README.txt | 11 +- .../contrib/babel-contrib/italian/italian.dtx | 359 +++--- .../contrib/babel-contrib/italian/italian.pdf | Bin 443357 -> 446223 bytes macros/latex/contrib/grfext/README.md | 7 + macros/latex/contrib/grfext/grfext.dtx | 816 +++++++++++++ macros/latex/contrib/grfext/grfext.pdf | Bin 0 -> 309305 bytes macros/latex/contrib/infwarerr/README.md | 9 + macros/latex/contrib/infwarerr/infwarerr.dtx | 850 +++++++++++++ macros/latex/contrib/infwarerr/infwarerr.pdf | Bin 0 -> 285979 bytes macros/latex/contrib/letltxmacro/README.md | 12 + macros/latex/contrib/letltxmacro/letltxmacro.dtx | 825 +++++++++++++ macros/latex/contrib/letltxmacro/letltxmacro.pdf | Bin 0 -> 290791 bytes macros/latex/contrib/mleftright/README.md | 12 + macros/latex/contrib/mleftright/mleftright.dtx | 815 +++++++++++++ macros/latex/contrib/mleftright/mleftright.pdf | Bin 0 -> 309397 bytes macros/latex/contrib/oberdiek/README.txt | 2 +- macros/latex/contrib/oberdiek/accsupp.dtx | 80 +- macros/latex/contrib/oberdiek/accsupp.pdf | Bin 154245 -> 327297 bytes macros/latex/contrib/oberdiek/aliascnt.dtx | 19 - macros/latex/contrib/oberdiek/aliascnt.pdf | Bin 104685 -> 293168 bytes macros/latex/contrib/oberdiek/alphalph.dtx | 372 ------ macros/latex/contrib/oberdiek/alphalph.pdf | Bin 201033 -> 354229 bytes macros/latex/contrib/oberdiek/askinclude.dtx | 1061 ----------------- macros/latex/contrib/oberdiek/askinclude.pdf | Bin 269749 -> 593914 bytes macros/latex/contrib/oberdiek/atbegshi.dtx | 292 +---- macros/latex/contrib/oberdiek/atbegshi.pdf | Bin 236243 -> 406524 bytes macros/latex/contrib/oberdiek/atenddvi.dtx | 19 - macros/latex/contrib/oberdiek/atenddvi.pdf | Bin 97925 -> 272610 bytes macros/latex/contrib/oberdiek/atveryend.dtx | 138 +-- macros/latex/contrib/oberdiek/atveryend.pdf | Bin 189683 -> 380814 bytes macros/latex/contrib/oberdiek/auxhook.dtx | 23 +- macros/latex/contrib/oberdiek/auxhook.pdf | Bin 106790 -> 285266 bytes macros/latex/contrib/oberdiek/bigintcalc.dtx | 952 +-------------- macros/latex/contrib/oberdiek/bigintcalc.pdf | Bin 342809 -> 467906 bytes macros/latex/contrib/oberdiek/bitset.dtx | 1243 +------------------- macros/latex/contrib/oberdiek/bitset.pdf | Bin 343620 -> 626116 bytes macros/latex/contrib/oberdiek/bmpsize.dtx | 23 +- macros/latex/contrib/oberdiek/bmpsize.pdf | Bin 327623 -> 497867 bytes macros/latex/contrib/oberdiek/catchfile.dtx | 326 +---- macros/latex/contrib/oberdiek/catchfile.pdf | Bin 144364 -> 298873 bytes macros/latex/contrib/oberdiek/centernot.dtx | 19 - macros/latex/contrib/oberdiek/centernot.pdf | Bin 168028 -> 274864 bytes macros/latex/contrib/oberdiek/chemarr.dtx | 19 - macros/latex/contrib/oberdiek/chemarr.pdf | Bin 94401 -> 288654 bytes macros/latex/contrib/oberdiek/classlist.dtx | 19 - macros/latex/contrib/oberdiek/classlist.pdf | Bin 98835 -> 271621 bytes macros/latex/contrib/oberdiek/colonequals.dtx | 19 - macros/latex/contrib/oberdiek/colonequals.pdf | Bin 104527 -> 284627 bytes macros/latex/contrib/oberdiek/dvipscol.dtx | 19 - macros/latex/contrib/oberdiek/dvipscol.pdf | Bin 90419 -> 269326 bytes macros/latex/contrib/oberdiek/engord.dtx | 134 +-- macros/latex/contrib/oberdiek/engord.pdf | Bin 133974 -> 318562 bytes macros/latex/contrib/oberdiek/enparen.dtx | 15 - macros/latex/contrib/oberdiek/enparen.pdf | Bin 125671 -> 304863 bytes macros/latex/contrib/oberdiek/eolgrab.dtx | 170 +-- macros/latex/contrib/oberdiek/eolgrab.pdf | Bin 136258 -> 316822 bytes macros/latex/contrib/oberdiek/etexcmds.dtx | 202 +--- macros/latex/contrib/oberdiek/etexcmds.pdf | Bin 130187 -> 300241 bytes macros/latex/contrib/oberdiek/fibnum.dtx | 263 +---- macros/latex/contrib/oberdiek/fibnum.pdf | Bin 149649 -> 354313 bytes macros/latex/contrib/oberdiek/flags.dtx | 19 - macros/latex/contrib/oberdiek/flags.pdf | Bin 104022 -> 283637 bytes macros/latex/contrib/oberdiek/gettitlestring.dtx | 176 +-- macros/latex/contrib/oberdiek/gettitlestring.pdf | Bin 142781 -> 318743 bytes macros/latex/contrib/oberdiek/grfext.dtx | 1130 ------------------ macros/latex/contrib/oberdiek/grfext.pdf | Bin 148784 -> 0 bytes macros/latex/contrib/oberdiek/hologo.dtx | 270 +---- macros/latex/contrib/oberdiek/hologo.pdf | Bin 393599 -> 567831 bytes macros/latex/contrib/oberdiek/holtxdoc.dtx | 19 - macros/latex/contrib/oberdiek/holtxdoc.pdf | Bin 125784 -> 305359 bytes macros/latex/contrib/oberdiek/hopatch.dtx | 204 +--- macros/latex/contrib/oberdiek/hopatch.pdf | Bin 126495 -> 293225 bytes macros/latex/contrib/oberdiek/hycolor.dtx | 554 +-------- macros/latex/contrib/oberdiek/hycolor.pdf | Bin 225113 -> 364633 bytes macros/latex/contrib/oberdiek/hypbmsec.dtx | 19 - macros/latex/contrib/oberdiek/hypbmsec.pdf | Bin 113898 -> 289747 bytes macros/latex/contrib/oberdiek/hypcap.dtx | 19 - macros/latex/contrib/oberdiek/hypcap.pdf | Bin 111262 -> 284122 bytes macros/latex/contrib/oberdiek/hypdestopt.dtx | 21 +- macros/latex/contrib/oberdiek/hypdestopt.pdf | Bin 131422 -> 317677 bytes macros/latex/contrib/oberdiek/hypdoc.dtx | 19 - macros/latex/contrib/oberdiek/hypdoc.pdf | Bin 157513 -> 319844 bytes macros/latex/contrib/oberdiek/hypgotoe.dtx | 19 - macros/latex/contrib/oberdiek/hypgotoe.pdf | Bin 109141 -> 285090 bytes macros/latex/contrib/oberdiek/hyphsubst.dtx | 173 +-- macros/latex/contrib/oberdiek/hyphsubst.pdf | Bin 127615 -> 299858 bytes macros/latex/contrib/oberdiek/ifdraft.dtx | 19 - macros/latex/contrib/oberdiek/ifdraft.pdf | Bin 92764 -> 265294 bytes macros/latex/contrib/oberdiek/iflang.dtx | 343 +----- macros/latex/contrib/oberdiek/iflang.pdf | Bin 156604 -> 314990 bytes macros/latex/contrib/oberdiek/infwarerr.dtx | 1193 ------------------- macros/latex/contrib/oberdiek/infwarerr.pdf | Bin 148243 -> 0 bytes macros/latex/contrib/oberdiek/intcalc.dtx | 977 +-------------- macros/latex/contrib/oberdiek/intcalc.pdf | Bin 317446 -> 431640 bytes macros/latex/contrib/oberdiek/kvdefinekeys.dtx | 134 +-- macros/latex/contrib/oberdiek/kvdefinekeys.pdf | Bin 117343 -> 295786 bytes macros/latex/contrib/oberdiek/kvsetkeys.dtx | 462 +------- macros/latex/contrib/oberdiek/kvsetkeys.pdf | Bin 219165 -> 375389 bytes macros/latex/contrib/oberdiek/letltxmacro.dtx | 1153 ------------------ macros/latex/contrib/oberdiek/letltxmacro.pdf | Bin 153829 -> 0 bytes macros/latex/contrib/oberdiek/listingsutf8.dtx | 133 +-- macros/latex/contrib/oberdiek/listingsutf8.pdf | Bin 130350 -> 298597 bytes macros/latex/contrib/oberdiek/ltxcmds.dtx | 879 +------------- macros/latex/contrib/oberdiek/ltxcmds.pdf | Bin 294529 -> 394188 bytes macros/latex/contrib/oberdiek/mleftright.dtx | 943 --------------- macros/latex/contrib/oberdiek/mleftright.pdf | Bin 129609 -> 0 bytes macros/latex/contrib/oberdiek/oberdiek-bundle.bib | 497 ++++++++ macros/latex/contrib/oberdiek/oberdiek-source.bib | 27 + macros/latex/contrib/oberdiek/oberdiek.ins | 109 ++ macros/latex/contrib/oberdiek/oberdiek.pdf | Bin 354713 -> 401743 bytes macros/latex/contrib/oberdiek/oberdiek.tex | 243 ++-- macros/latex/contrib/oberdiek/pagegrid.dtx | 134 +-- macros/latex/contrib/oberdiek/pagegrid.pdf | Bin 143465 -> 311600 bytes macros/latex/contrib/oberdiek/pagesel.dtx | 19 - macros/latex/contrib/oberdiek/pagesel.pdf | Bin 125551 -> 312192 bytes macros/latex/contrib/oberdiek/pdfcol.dtx | 202 +--- macros/latex/contrib/oberdiek/pdfcol.pdf | Bin 145886 -> 302693 bytes macros/latex/contrib/oberdiek/pdfcolfoot.dtx | 53 +- macros/latex/contrib/oberdiek/pdfcolfoot.pdf | Bin 114122 -> 294403 bytes macros/latex/contrib/oberdiek/pdfcolparallel.dtx | 123 +- macros/latex/contrib/oberdiek/pdfcolparallel.pdf | Bin 150158 -> 319986 bytes macros/latex/contrib/oberdiek/pdfcolparcolumns.dtx | 80 +- macros/latex/contrib/oberdiek/pdfcolparcolumns.pdf | Bin 136669 -> 308006 bytes macros/latex/contrib/oberdiek/pdfcrypt.dtx | 19 - macros/latex/contrib/oberdiek/pdfcrypt.pdf | Bin 146914 -> 311564 bytes macros/latex/contrib/oberdiek/pdfescape.dtx | 761 +----------- macros/latex/contrib/oberdiek/pdfescape.pdf | Bin 239043 -> 346746 bytes macros/latex/contrib/oberdiek/pdflscape.dtx | 241 +--- macros/latex/contrib/oberdiek/pdflscape.pdf | Bin 134468 -> 299072 bytes macros/latex/contrib/oberdiek/pdfrender.dtx | 310 +---- macros/latex/contrib/oberdiek/pdfrender.pdf | Bin 202200 -> 382955 bytes macros/latex/contrib/oberdiek/picture.dtx | 19 - macros/latex/contrib/oberdiek/picture.pdf | Bin 116293 -> 295928 bytes macros/latex/contrib/oberdiek/pmboxdraw.dtx | 139 +-- macros/latex/contrib/oberdiek/pmboxdraw.pdf | Bin 494974 -> 638223 bytes macros/latex/contrib/oberdiek/protecteddef.dtx | 293 +---- macros/latex/contrib/oberdiek/protecteddef.pdf | Bin 138533 -> 307773 bytes macros/latex/contrib/oberdiek/refcount.dtx | 440 +------ macros/latex/contrib/oberdiek/refcount.pdf | Bin 177298 -> 326895 bytes macros/latex/contrib/oberdiek/rerunfilecheck.dtx | 135 +-- macros/latex/contrib/oberdiek/rerunfilecheck.pdf | Bin 142195 -> 314659 bytes macros/latex/contrib/oberdiek/resizegather.dtx | 134 +-- macros/latex/contrib/oberdiek/resizegather.pdf | Bin 135129 -> 517568 bytes macros/latex/contrib/oberdiek/rotchiffre.dtx | 430 +------ macros/latex/contrib/oberdiek/rotchiffre.pdf | Bin 161868 -> 317164 bytes macros/latex/contrib/oberdiek/scrindex.dtx | 19 - macros/latex/contrib/oberdiek/scrindex.pdf | Bin 112169 -> 283891 bytes macros/latex/contrib/oberdiek/selinput.dtx | 147 +-- macros/latex/contrib/oberdiek/selinput.pdf | Bin 144254 -> 537938 bytes macros/latex/contrib/oberdiek/setouterhbox.dtx | 172 +-- macros/latex/contrib/oberdiek/setouterhbox.pdf | Bin 152471 -> 330129 bytes macros/latex/contrib/oberdiek/settobox.dtx | 19 - macros/latex/contrib/oberdiek/settobox.pdf | Bin 121132 -> 293548 bytes macros/latex/contrib/oberdiek/soulutf8.dtx | 577 +-------- macros/latex/contrib/oberdiek/soulutf8.pdf | Bin 228320 -> 352081 bytes macros/latex/contrib/oberdiek/stackrel.dtx | 19 - macros/latex/contrib/oberdiek/stackrel.pdf | Bin 101395 -> 281746 bytes macros/latex/contrib/oberdiek/stampinclude.dtx | 23 +- macros/latex/contrib/oberdiek/stampinclude.pdf | Bin 104275 -> 277765 bytes macros/latex/contrib/oberdiek/tabularht.dtx | 19 - macros/latex/contrib/oberdiek/tabularht.pdf | Bin 148023 -> 331314 bytes macros/latex/contrib/oberdiek/tabularkv.dtx | 19 - macros/latex/contrib/oberdiek/tabularkv.pdf | Bin 89913 -> 254709 bytes macros/latex/contrib/oberdiek/telprint.dtx | 134 +-- macros/latex/contrib/oberdiek/telprint.pdf | Bin 132903 -> 303828 bytes macros/latex/contrib/oberdiek/thepdfnumber.dtx | 319 +---- macros/latex/contrib/oberdiek/thepdfnumber.pdf | Bin 169513 -> 347238 bytes macros/latex/contrib/oberdiek/twoopt.dtx | 19 - macros/latex/contrib/oberdiek/twoopt.pdf | Bin 100155 -> 274422 bytes macros/latex/contrib/oberdiek/uniquecounter.dtx | 311 +---- macros/latex/contrib/oberdiek/uniquecounter.pdf | Bin 133466 -> 289988 bytes 171 files changed, 4317 insertions(+), 19911 deletions(-) create mode 100644 macros/latex/contrib/grfext/README.md create mode 100644 macros/latex/contrib/grfext/grfext.dtx create mode 100644 macros/latex/contrib/grfext/grfext.pdf create mode 100644 macros/latex/contrib/infwarerr/README.md create mode 100644 macros/latex/contrib/infwarerr/infwarerr.dtx create mode 100644 macros/latex/contrib/infwarerr/infwarerr.pdf create mode 100644 macros/latex/contrib/letltxmacro/README.md create mode 100644 macros/latex/contrib/letltxmacro/letltxmacro.dtx create mode 100644 macros/latex/contrib/letltxmacro/letltxmacro.pdf create mode 100644 macros/latex/contrib/mleftright/README.md create mode 100644 macros/latex/contrib/mleftright/mleftright.dtx create mode 100644 macros/latex/contrib/mleftright/mleftright.pdf delete mode 100644 macros/latex/contrib/oberdiek/grfext.dtx delete mode 100644 macros/latex/contrib/oberdiek/grfext.pdf delete mode 100644 macros/latex/contrib/oberdiek/infwarerr.dtx delete mode 100644 macros/latex/contrib/oberdiek/infwarerr.pdf delete mode 100644 macros/latex/contrib/oberdiek/letltxmacro.dtx delete mode 100644 macros/latex/contrib/oberdiek/letltxmacro.pdf delete mode 100644 macros/latex/contrib/oberdiek/mleftright.dtx delete mode 100644 macros/latex/contrib/oberdiek/mleftright.pdf create mode 100644 macros/latex/contrib/oberdiek/oberdiek-bundle.bib create mode 100644 macros/latex/contrib/oberdiek/oberdiek-source.bib create mode 100644 macros/latex/contrib/oberdiek/oberdiek.ins (limited to 'macros/latex/contrib') diff --git a/macros/latex/contrib/babel-contrib/italian/README.txt b/macros/latex/contrib/babel-contrib/italian/README.txt index 11598a8e32..cc96d0bdf0 100644 --- a/macros/latex/contrib/babel-contrib/italian/README.txt +++ b/macros/latex/contrib/babel-contrib/italian/README.txt @@ -1,13 +1,18 @@ -The italian.dtx file has version number 1.4.01 dated 2019-01-05. +The italian.dtx file has version number 1.4.03 dated 2019-11-16. It is and update of a series fo files stating with the first one in 1990 Copyright (C) 1990-2019 Claudio Beccari Maintainer Claudio Beccari Contact: claudio dot beccari at gmail dot com +This bundle containes the source file italian.dtx and this README.txt file. By running pdfLaTeX on thei italian.dtx file you obtain bith the documentation italian.pdf and the language description file italian.ldf. + Description -This file contain the necessary and supplementary data for typesetting documents in Italiana with babel as the manager of the language management. -It defines the infix words, the date in various formats. Optionally lets the user activate a number of shorthands to performe routine frequent tasks by means of the active character " that can be freely activated and deactivated. It defines an intelligent mathematical comma that recognises if it has to perform as a punctuation mark or as a decimal separator. Another user command activates or deactivates some commands to supply a minimum of performance that is fully provided by the siunitx package. The file allows using babel also when a document is typeset with XeLaTeX or LuaLaTeX, even if, according to the author, polyglossia is preferred when typesetting documents in Italian, even if the gloss-italian.ldf for polyglossia provides less facilities than the ones available with babel. +This file contain the necessary and supplementary data for typesetting documents in Italian with babel as the manager of the language management. +It defines the infix words, the date in various formats. Optionally lets the user activate a number of shorthands to performe routine frequent tasks by means of the active character " that can be freely activated and deactivated. +It defines an intelligent mathematical comma that recognises if it has to perform as a punctuation mark or as a decimal separator. Another user command activates or deactivates some commands to supply a minimum of the performance that is fully provided by the siunitx package. The file allows using babel also when a document is typeset with XeLaTeX or LuaLaTeX, even if, according to the author, polyglossia is preferred when typesetting documents in Italian, in spite of the fact that gloss-italian.ldf for polyglossia provides less facilities than the ones available with babel. +Supposedly since version 1.4.03 this file should be usable also with babel+uplatex The documentation that is provided by running LaTeX on the italian.dtx file provides full documentation of every facility provided by the italian.ldf file. +The documentation contains the licence clauses. diff --git a/macros/latex/contrib/babel-contrib/italian/italian.dtx b/macros/latex/contrib/babel-contrib/italian/italian.dtx index a7a234fea1..6d5a088d6b 100644 --- a/macros/latex/contrib/babel-contrib/italian/italian.dtx +++ b/macros/latex/contrib/babel-contrib/italian/italian.dtx @@ -60,7 +60,7 @@ This file is a self unpacking one. % %\ProvidesLanguage{italian} %<*code> - [2019/01/05 v.1.4.01 Italian support for the babel system] + [2019/11/16 v.1.4.03 Italian support for the babel system] % %% %% Please report errors to: claudio dot beccari at gmail dot com @@ -99,7 +99,7 @@ mail: \texttt{claudio dot beccari at gmail dot com}}} % %\fi % -% \CheckSum{755} +% \CheckSum{753} % % \changes{italian-0.99}{1990/07/11}{First version, from english.doc} % \changes{italian-1.0}{1991/04/23}{Modified for babel 3.0} @@ -217,127 +217,130 @@ mail: \texttt{claudio dot beccari at gmail dot com}}} % \end{table} % % The features of this language definition file are the following: -% \begin{enumerate} -% \item The Italian hyphenation is invoked, provided that the Italian -% hyphenation pattern files were loaded when the specific format file -% was built. -% \item The language dependent infix words to be inserted by such -% commands as |\chapter|, |\caption|, |\tableofcontents|, -% etc. are redefined in accordance with the Italian -% typographical practice. -% \item Since Italian can be easily hyphenated and Italian practice -% allows to break a word before the last two letters, hyphenation -% parameters have been set accordingly, but a very high demerit -% value has been set in order to avoid word breaks in the -% penultimate line of a paragraph. Specifically the |\clubpenalty|, -% and the |\widowpenalty| are set to rather high values and -% |\finalhyphendemerits| is set to such a high value that -% hyphenation is strongly discouraged between the last two lines -% of a paragraph. +% \begin{enumerate} +% \item The Italian hyphenation is invoked, provided that the Italian +% hyphenation pattern files were loaded when the specific format file +% was built. +% \item The language dependent infix words to be inserted by such +% commands as |\chapter|, |\caption|, |\tableofcontents|, +% etc. are redefined in accordance with the Italian +% typographical practice. +% \item Since Italian can be easily hyphenated and Italian practice +% allows to break a word before the last two letters, hyphenation +% parameters have been set accordingly, but a very high demerit +% value has been set in order to avoid word breaks in the +% penultimate line of a paragraph. Specifically the |\clubpenalty|, +% and the |\widowpenalty| are set to rather high values and +% |\finalhyphendemerits| is set to such a high value that +% hyphenation is strongly discouraged between the last two lines +% of a paragraph. %^^A %^^A Qui ci si potrebbero mettere le indicazioni per gli attributi e modificatori %^^A -% \item Some language specific shorthands have been defined so as to -% allow etymological hyphenation, specifically |"| inserts a -% break point at any word boundary that the typesetter chooses, -% provided it is not followed by an accented letter (very unlikely -% in Italian, where compulsory accents fall only on the last and -% ending vowel of a word, but it may take place with compound words -% that include foreign roots), and \verb="|= when the desired break -% point falls before an accented letter. As you can read in -% table~\ref{t:itshrtct}, these shorthands are available only if -% they get activated with |\setactivedoublequote| after -% loading \babel\ but before the |\begin{docuemnt}| statement. This -% is done in order to preserve the user from package conflicts: -% if s/he wants to use these facilities s/he must remember that -% conflicts may arise unless active characters are deactivated; -% this can be done with the \babel\ command |\shorthadsoff{"}| -% (and reactivated with |\shorthandson{"}|) when its wise to do -% so; conflicts have been reported with package \file{xypic} and -% with \texttt{TikZ}, but the latter has its own library to -% deactivate all active characters, not just the double quotes, -% the only Italian language possibly activated character. -% \item Some Italian compound words have a connecting short dash (a -% hyphen sign) between them without any space between the component -% words and the short dash; in this situation standard \LaTeX\ allows -% a line break only just after the short dash; this may lead to -% paragraphs with protruding lines or with ugly looking wide inter -% word spaces. If a break point is desired in the second word, one -% may use a |"| sign just after the short dash; but if a line break -% is required in the first word, them the |"-| shorthand comes in handy; -% pay attention though, that if you use an en-dash or an em-dash (both -% should not be used in Italian as compound words connectors, but\dots) -% then the |"-| shorthand might impeach the |--| or |---| ligatures, thus -% producing an unacceptable appearance. -% \item The shorthand |""| introduces the raised (English) opening -% double quotes; this shorthand proves its usefulness when one -% reminds that the Italian keyboard misses the backtick key, and -% the backtick on a Windows based platform may be obtained only by -% pressing the \texttt{Alt} key while keying the numerical code -% 0096 in the numeric keypad; very, very annoying! -% \item The shorthands |"<| and |">| insert the guillemets sometimes -% used also in Italian typography; with the T1 font encoding -% the ligatures |<<| and |>>| should insert such signs directly, -% but not all the virtual fonts that claim to follow the T1 font -% encoding actually contain the guillemets; with the OT1 encoding -% the guillemets are not available and must be faked in some -% way. By using the |"<| and |">| shorthands (even with the T1 -% encoding) the necessary tests are performed and in case the -% guillemets are faked by means of the special LaTeX math symbols. -% At the same time if OpenType fonts are being used with XeLaTeX -% or LuaLaTeX, there are no problems with guillemets. -% \item Three new specific commands |\unit|, |\ped|, and |\ap| are -% introduced so as to enable the correct composition of technical -% mathematics according to the ISO~31/XI recommendations. -% The definition of |\unit| takes place only at ``begin document'' -% so that it is possible to verify if some other similar functionalities -% have already been defined by other packages, such as |units.sty| -% or |siunitx.sty|. In particular command |\unit| is deactivated by -% default; the user can activate it by entering the command -% |\setISOcompliance| after loading the \babel\ package and before the -% |\begin{document}| statement. The above checks will enter into -% action even if this ISO compliance is set, in order to avoid conflicts -% with the above named packages. The |\ap| and |\ped| commands remain -% available because up to now no specific conflicts have been reported. -% \item Since in all languages different from English the decimal separator -% according to the ISO regulations \emph{must} be a comma\footnote{Actually -% the Bureau International des Pois et M\'esures allows also the point -% as a decimal separator without mentioning any language, but recommends -% to follow the national typographical traditions}; since -% no language description file nor the \babel\ package itself provides -% for this functionality, a not so simple intelligent comma definition is -% provided such that at least in mathematics it behaves correctly. -% There are other packages that provide a similar functionality, for -% example |icomma| and |ncccomma|; |icomma|, apparently is not in conflict -% with |dcolomn|, but requires a space after the comma all the times it -% plays the r\^ole of a punctuation mark; |ncccomma|, checks if the next -% token is a digit, but it repeated ten tests every time it meets a comma, -% irrespective from what it is followed by. I believe that my solution -% is better than that provided by both those packages; but I assume that -% if the user loads on of those packages, it prefers to use that -% functionality; In case one of those pachages is loaded, this module -% excludes its intelligent comma functionality. -% By default this functionality is turned \emph{off}, therefore the user -% should turn it on by means of the |\IntelligentComma| command; it can -% turn it off by means of |\NoIntelligentComma|. Please, read -% subsection~\ref{ssec:comma} to see the various situations where a -% mathematical comma may be used and how to overcome the few cases when -% the macros of this file don't behave as expected. The section describes -% also some limitations when some cong=flicting packages are being loaded. -% \item In Italian legal documents it is common to tag list-items -% with the old fashioned 21-letter Italian alphabet, that differs from -% the Latin one by the omission of the letters `j', `k', `w',`x', and -% `y'. This applies for both upper and lower case tags. -% This feature is obtained by using the commands |\XXIletters| and -% |\XXVIletters| that allow to switch back and forth -% between 21- and 26-letter tagging. -% \end{enumerate} -% -% For this language a few shorthands have been defined, -% table~\ref{t:itshrtct}, some of which are introduced to overcome -% certain limitations of the Italian keyboard; in -% section~\ref{s:itkbd} there are other comments and hints in order -% to overcome some other keyboard limitations. +% \item Some language specific shorthands have been defined so as to +% allow etymological hyphenation, specifically |"| inserts a +% break point at any word boundary that the typesetter chooses, +% provided it is not followed by an accented letter (very unlikely +% in Italian, where compulsory accents fall only on the last and +% ending vowel of a word, but it may take place with compound words +% that include foreign roots), and \verb="|= when the desired break +% point falls before an accented letter. As you can read in +% table~\ref{t:itshrtct}, these shorthands are available only if +% they get activated with |\setactivedoublequote| after +% loading \babel\ but before the |\begin{docuemnt}| statement. This +% is done in order to preserve the user from package conflicts: +% if s/he wants to use these facilities s/he must remember that +% conflicts may arise unless active characters are deactivated; +% this can be done with the \babel\ command |\shorthadsoff{"}| +% (and reactivated with |\shorthandson{"}|) when its wise to do +% so; conflicts have been reported with package \file{xypic} and +% with \texttt{TikZ}, but the latter has its own library to +% deactivate all active characters, not just the double quotes, +% the only Italian language possibly activated character. +% \item Some Italian compound words have a connecting short dash (a +% hyphen sign) between them without any space between the component +% words and the short dash; in this situation standard \LaTeX\ allows +% a line break only just after the short dash; this may lead to +% paragraphs with protruding lines or with ugly looking wide inter +% word spaces. If a break point is desired in the second word, one +% may use a |"| sign just after the short dash; but if a line break +% is required in the first word, them the |"-| shorthand comes in +% handy; pay attention though, that if you use an en-dash or an +% em-dash (both should not be used in Italian as compound words +% connectors, but\dots) then the |"-| shorthand might impeach the |--| +% or |---| ligatures, thus producing an unacceptable appearance. +% \item The shorthand |""| introduces the raised (English) opening +% double quotes; this shorthand proves its usefulness when one +% reminds that the Italian keyboard misses the back tick key, and +% the back tick on a Windows based platform may be obtained only by +% pressing the \texttt{Alt} key while keying the numerical code +% 0096 in the numeric keypad; very, very annoying! +% \item The shorthands |"<| and |">| insert the guillemets sometimes +% used also in Italian typography; with the T1 font encoding +% the ligatures |<<| and |>>| should insert such signs directly, +% but not all the virtual fonts that claim to follow the T1 font +% encoding actually contain the guillemets; with the OT1 encoding +% the guillemets are not available and must be faked in some +% way. By using the |"<| and |">| shorthands (even with the T1 +% encoding) the necessary tests are performed and in case the +% guillemets are faked by means of the special LaTeX math symbols. +% At the same time if OpenType fonts are being used with XeLaTeX +% or LuaLaTeX, there are no problems with guillemets. +% \item Three new specific commands |\unit|, |\ped|, and |\ap| are +% introduced so as to enable the correct composition of technical +% mathematics according to the ISO~31/XI recommendations. +% The definition of |\unit| takes place only at ``begin document'' +% so that it is possible to verify if some other similar +% functionalities have already been defined by other packages, such +% as |units.sty| or |siunitx.sty|. In particular command |\unit| is +% deactivated by default; the user can activate it by entering the +% command |\setISOcompliance| after loading the \babel\ package and +% before the |\begin{document}| statement. The above checks will enter +% into action even if this ISO compliance is set, in order to avoid +% conflicts with the above named packages. The |\ap| and |\ped| +% commands remain available because up to now no specific conflicts +% have been reported. +% \item Since in all languages different from English the decimal +% separator according to the ISO regulations \emph{must} be a +% comma\footnote{Actually the Bureau International des Pois et +% M\'esures allows also the point as a decimal separator without +% mentioning any language, but recommends to follow the national +% typographical traditions.}; since no language description file nor +% the \babel\ package itself provides for this functionality, a not so +% simple intelligent comma definition is provided such that at least +% in mathematics it behaves correctly. +% There are other packages that provide a similar functionality, for +% example |icomma| and |ncccomma|; |icomma|, apparently is not in +% conflict with |dcolomn|, but requires a space after the comma all +% the times it plays the r\^ole of a punctuation mark; |ncccomma|, +% checks if the next token is a digit, but it repeats ten tests every +% time it meets a comma, irrespective from what it is followed by. +% I believe that my solution is better than that provided by both +% those packages; but I assume that if the user loads one of those +% packages, it prefers to use their functionality; in case one of those +% packages is loaded, this module excludes its intelligent comma +% functionality. By default this functionality is turned \emph{off}, +% therefore the user should turn it on by means of the +% |\IntelligentComma| command; it can turn it off by means of +% |\NoIntelligentComma|. Please, read subsection~\ref{ssec:comma} to +% see the various situations where a mathematical comma may be used +% and how to overcome the few cases when the macros of this file don't +% behave as expected. The section describes also some limitations when +% some conflicting packages are being loaded. +% \item In Italian legal documents it is common to tag list-items +% with the old fashioned 21-letter Italian alphabet, that differs from +% the Latin one by the omission of the letters `j', `k', `w',`x', and +% `y'. This applies for both upper and lower case tags. +% This feature is obtained by using the commands |\XXIletters| and +% |\XXVIletters| that allow to switch back and forth +% between 21- and 26-letter tagging. +% \end{enumerate} +% +% For this language a few shorthands have been defined, +% table~\ref{t:itshrtct}, some of which are introduced to overcome +% certain limitations of the Italian keyboard; in +% section~\ref{s:itkbd} there are other comments and hints in order +% to overcome some other keyboard limitations. % % \subsection*{Acknowlegements} % It is my pleasure to acknowledge the contributions of Giovanni Dore, @@ -359,7 +362,7 @@ mail: \texttt{claudio dot beccari at gmail dot com}}} % % \StopEventually{}% % -%\subsection{The commented code} +%\section{The commented code} % The macro |\LdfInit| takes care of preventing that this file is % loaded more than once, checking the category code of the % \texttt{@} sign, etc. @@ -494,47 +497,64 @@ mail: \texttt{claudio dot beccari at gmail dot com}}} % \changes{italian-1.2l}{1999/04/5}{Changed example ``begl'italiani'' % (obsolete spelling) with another, ``nell'altezza'', that behaves % the same way} +% \changes{italian 1.4.01}{2019-01-05}{Set the lccode of the apostrophe +% that should be valid for both the pdflatex and the OpentType aware +% typesetting engines xelatelx and lualatex.} +% \changes{italian 1.4.03}{2019-11-16}{Adjust the lccode for the +% apostrophe so as to work also with platex and uplatex. Thanks to +% Hironobu Yamashita who spottes the +% error and suggested the correction.} +% % In order to enable the hyphenation of words such as % ``nell'altezza'' we give the \texttt{'} a non-zero lower case -% code. When we do that \TeX\ finds the following hyphenation +% code. When we do that, \TeX\ finds the following hyphenation % points |nel-l'al-tez-za| instead of none. If this |italian.ldf| is -% (improperly) used with |babel| when typesetting with |xelatex| or +% used with |babel| when typesetting with |xelatex| or % |lualatex| the apostrophe must receive a unicode code point. -% Therefore we use the same test that is being used by the |iftex| -% package in order to check if this option to |babel| is used while -% typesetting with |pdflatex| or another typesetting engine. +% Therefore we use a special test that was suggested by Hironobu +% Yamashita\footnote{Thanks to Hironobu Yamashita +% } if this |babel| language option +% is used while using either |pdflatex| or a Unicode aware +% typesetting engine. % \begin{macrocode} \addto\extrasitalian{% -\lccode\string`'=`' \unless\ifcsname pdfmatch\endcsname +\lccode\string`'=`' \ifcsname Umathcode\endcsname \lccode\string"2019=\string"2019\fi} \addto\noextrasitalian{% -\lccode\string`'=0 \unless\ifcsname pdfmatch\endcsname +\lccode\string`'=0 \ifcsname Umathcode\endcsname \lccode\string"2019=0\fi} % \end{macrocode} -% Notice, though, that if you use |babel| when typesetting with |lualatex| or |xelatex| using the |fontspec| usual commands and options may not lead to their proper font alternative variants being used. Apparently the |\balefont| command is more performant in transmitting the proper information to |fontspec|. Of course |\babelfont| must be used after the |babel| package has been invoked; while there appears to be any loading precedence requirements when |fontspec| and |polyglossa| are used +% Notice, though, that if you use |babel| when typesetting with |lualatex| +% or |xelatex| using the |fontspec| usual commands and options may not +% lead to their proper font alternative variants being used. Apparently +% the |\babelfont| command is more performant in transmitting the proper +% information to |fontspec|. Of course |\babelfont| must be used after the +% |babel| package has been invoked; while there appears to be any loading +% precedence requirements when |fontspec| and |polyglossia| are used % \end{macro} % \end{macro} % % \subsection{Traditionally labelled enumerate environment} % \changes{italian-1.2v}{2010/01/02}{Support for traditional Italian} -% In some traditional texts, especially of legal nature, enumerations labelled -% with lower or upper case letters use the reduced Latin alphabet that omits -% the so called ``non Italian letters'': j, k, w, x, and y. -% -% \changes{italian-1.2w}{2011/01/03}{Added switching mechanism between normal -% and traditional enumeration labelling} -% \changes{italian-1.3}{2013/09/27}{The |traditional| language attribute has -% been dropped while the commands to switch back and forth from 21- to -% 26-letter alphabet are retained} +% In some traditional texts, especially of legal nature, enumerations +% labelled with lower or upper case letters use the reduced Latin +% alphabet that omits the so called ``non Italian letters'': j, k, w, +% x, and y. +% +% \changes{italian-1.2w}{2011/01/03}{Added switching mechanism between +% normal and traditional enumeration labelling} +% \changes{italian-1.3}{2013/09/27}{The |traditional| language attribute +% has been dropped while the commands to switch back and forth from +% 21- to 26-letter alphabet are retained} % \begin{macro}{\XXIletters} % \begin{macro}{\XXVIletters} % At the same time it is considered useful to have the possibility of -% switching back and forth from the 21-letter tagging and the 26-letter one. -% This requires a counter that keeps the switching status (0 for 21 letters -% and 1 for 26 letters) and commands |\XXIletters| and |\XXVIletters| -% to set the switch. Default is 26 letter tagging. +% switching back and forth from the 21-letter tagging and the 26-letter +% one. This requires a counter that keeps the switching status (0 for 21 +% letters and 1 for 26 letters) and commands |\XXIletters| and +% |\XXVIletters| to set the switch. Default is 26 letter tagging. % \begin{macrocode} \newcount\it@lettering \it@lettering=\@ne \newcommand*\XXIletters{\it@lettering=\z@} @@ -546,8 +566,8 @@ mail: \texttt{claudio dot beccari at gmail dot com}}} % \end{macrocode} % \end{macro} % \end{macro} -% To make this feasible it's necessary to redefine the way the \LaTeX\ |\@alph| -% and |\@Alph| work. Let's make the alternate definitions: +% To make this feasible it's necessary to redefine the way the \LaTeX\ +% |\@alph| and |\@Alph| work. Let's make the alternate definitions: % \begin{macrocode} \def\it@alph#1{% \ifcase\it@lettering @@ -572,31 +592,32 @@ mail: \texttt{claudio dot beccari at gmail dot com}}} % \end{macrocode} % % In order to have a complete description, the situation is as such: -% \begin{enumerate} -% \item If you want to always use the 21-letter item tagging, simply -% use the |\XXIletters| declaration just after |\begin{document}| -% and this setting remains global (provided, of course, that the -% declaration is defined, i.e. that the Italian language is the -% default one); in this way the setting is global while you use -% the Italian language. -% \item The |XXVIletter| command, issued outside any environment sets -% the 26-letter item tagging in a global way; this setting is the default one. -% \item If you specify |\XXIletters| just before entering an -% environment that uses alphabetic tagging, this environment will -% be tagged with the 21-letter alphabet, but this is a local setting, -% because the letter tagging takes place only from the second level -% of enumeration. -% \item The declarations |\XXIletters| and |\XXVIletters| let you -% switch back and forth between the two kinds of tagging, But this -% kind of tagging, the 21-letter one, is meaningful only in Italian -% and when you change language, letter tagging reverts to the 26-letter -% one. -% \end{enumerate} +% \begin{enumerate} +% \item If you want to always use the 21-letter item tagging, simply +% use the |\XXIletters| declaration just after |\begin{document}| +% and this setting remains global (provided, of course, that the +% declaration is defined, i.e. that the Italian language is the +% default one); in this way the setting is global while you use +% the Italian language. +% \item The |XXVIletter| command, issued outside any environment sets +% the 26-letter item tagging in a global way; this setting is the +% default one. +% \item If you specify |\XXIletters| just before entering an +% environment that uses alphabetic tagging, this environment will +% be tagged with the 21-letter alphabet, but this is a local setting, +% because the letter tagging takes place only from the second level +% of enumeration. +% \item The declarations |\XXIletters| and |\XXVIletters| let you +% switch back and forth between the two kinds of tagging, But this +% kind of tagging, the 21-letter one, is meaningful only in Italian +% and when you change language, letter tagging reverts to the +% 26-letter one. +% \end{enumerate} % % \changes{italian-1.2m}{2000/01/05}{Support for etymological % hyphenation} % -% \subsection{Support for etymological hyphenation} +% \subsection{Support for etymological hyphenation} % In Italian etymological hyphenation is desirable with % technical terms, chemical names, and the like. @@ -663,10 +684,10 @@ mail: \texttt{claudio dot beccari at gmail dot com}}} % \changes{italian-1.3g}{2014/01/22}{The active double straight % quote conflicts with other packages; set as an optional facility.} % Instead of a boolean switch we use a private counter so as to check -% at |\begin{document}| if this facility has to be activated. The default -% value is zero; anything different from zero means that the facility -% has to be activated; this is done with command |\setactivedoublequote| -% to be issued before |\begin{document}| +% at |\begin{document}| if this facility has to be activated. The +% default value is zero; anything different from zero means that the +% facility has to be activated; this is done with command +% |\setactivedoublequote| to be issued before |\begin{document}| % % \begin{macrocode} \newcount\it@doublequoteactive \it@doublequoteactive=\z@ diff --git a/macros/latex/contrib/babel-contrib/italian/italian.pdf b/macros/latex/contrib/babel-contrib/italian/italian.pdf index ecb435c1f3..7f0838f365 100644 Binary files a/macros/latex/contrib/babel-contrib/italian/italian.pdf and b/macros/latex/contrib/babel-contrib/italian/italian.pdf differ diff --git a/macros/latex/contrib/grfext/README.md b/macros/latex/contrib/grfext/README.md new file mode 100644 index 0000000000..647f723b09 --- /dev/null +++ b/macros/latex/contrib/grfext/README.md @@ -0,0 +1,7 @@ +# grfext + +grfext package for LaTeX + + +This package provides macros for adding and reordering +graphics extensions of the graphics package. diff --git a/macros/latex/contrib/grfext/grfext.dtx b/macros/latex/contrib/grfext/grfext.dtx new file mode 100644 index 0000000000..3dcab07ef6 --- /dev/null +++ b/macros/latex/contrib/grfext/grfext.dtx @@ -0,0 +1,816 @@ +% \iffalse meta-comment +% +% File: grfext.dtx +% Version: 2019/12/03 v1.3 +% Info: Manage graphics extensions +% +% Copyright (C) +% 2007, 2010 Heiko Oberdiek +% 2016-2019 Oberdiek Package Support Group +% https://github.com/ho-tex/grfext/issues +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3c of this license or (at your option) any later +% version. This version of this license is in +% https://www.latex-project.org/lppl/lppl-1-3c.txt +% and the latest version of this license is in +% https://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 Maintainers of this work are +% Heiko Oberdiek and the Oberdiek Package Support Group +% https://github.com/ho-tex/grfext/issues +% +% This work consists of the main source file grfext.dtx +% and the derived files +% grfext.sty, grfext.pdf, grfext.ins, grfext.drv, +% +% Distribution: +% CTAN:macros/latex/contrib/grfext/grfext.dtx +% CTAN:macros/latex/contrib/grfext/grfext.pdf +% +% Unpacking: +% (a) If grfext.ins is present: +% tex grfext.ins +% (b) Without grfext.ins: +% tex grfext.dtx +% (c) If you insist on using LaTeX +% latex \let\install=y\input{grfext.dtx} +% (quote the arguments according to the demands of your shell) +% +% Documentation: +% (a) If grfext.drv is present: +% latex grfext.drv +% (b) Without grfext.drv: +% latex grfext.dtx; ... +% The class ltxdoc loads the configuration file ltxdoc.cfg +% if available. Here you can specify further options, e.g. +% use A4 as paper format: +% \PassOptionsToClass{a4paper}{article} +% +% Programm calls to get the documentation (example): +% pdflatex grfext.dtx +% makeindex -s gind.ist grfext.idx +% pdflatex grfext.dtx +% makeindex -s gind.ist grfext.idx +% pdflatex grfext.dtx +% +% Installation: +% TDS:tex/latex/grfext/grfext.sty +% TDS:doc/latex/grfext/grfext.pdf +% TDS:source/latex/grfext/grfext.dtx +% +%<*ignore> +\begingroup + \catcode123=1 % + \catcode125=2 % + \def\x{LaTeX2e}% +\expandafter\endgroup +\ifcase 0\ifx\install y1\fi\expandafter + \ifx\csname processbatchFile\endcsname\relax\else1\fi + \ifx\fmtname\x\else 1\fi\relax +\else\csname fi\endcsname +% +%<*install> +\input docstrip.tex +\Msg{************************************************************************} +\Msg{* Installation} +\Msg{* Package: grfext 2019/12/03 v1.3 Manage graphics extensions (HO)} +\Msg{************************************************************************} + +\keepsilent +\askforoverwritefalse + +\let\MetaPrefix\relax +\preamble + +This is a generated file. + +Project: grfext +Version: 2019/12/03 v1.3 + +Copyright (C) + 2007, 2010 Heiko Oberdiek + 2016-2019 Oberdiek Package Support Group + +This work may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either +version 1.3c of this license or (at your option) any later +version. This version of this license is in + https://www.latex-project.org/lppl/lppl-1-3c.txt +and the latest version of this license is in + https://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 Maintainers of this work are +Heiko Oberdiek and the Oberdiek Package Support Group +https://github.com/ho-tex/grfext/issues + + +This work consists of the main source file grfext.dtx +and the derived files + grfext.sty, grfext.pdf, grfext.ins, grfext.drv. + +\endpreamble +\let\MetaPrefix\DoubleperCent + +\generate{% + \file{grfext.ins}{\from{grfext.dtx}{install}}% + \file{grfext.drv}{\from{grfext.dtx}{driver}}% + \usedir{tex/latex/grfext}% + \file{grfext.sty}{\from{grfext.dtx}{package}}% +% \usedir{doc/latex/grfext/test}% +% \file{grfext-test1.tex}{\from{grfext.dtx}{test1}}% +% \file{grfext-test2.tex}{\from{grfext.dtx}{test2}}% +} + +\catcode32=13\relax% active space +\let =\space% +\Msg{************************************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move the following} +\Msg{* file into a directory searched by TeX:} +\Msg{*} +\Msg{* grfext.sty} +\Msg{*} +\Msg{* To produce the documentation run the file `grfext.drv'} +\Msg{* through LaTeX.} +\Msg{*} +\Msg{* Happy TeXing!} +\Msg{*} +\Msg{************************************************************************} + +\endbatchfile +% +%<*ignore> +\fi +% +%<*driver> +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{grfext.drv}% + [2019/12/03 v1.3 Manage graphics extensions (HO)]% +\documentclass{ltxdoc} +\usepackage{holtxdoc}[2011/11/22] +\begin{document} + \DocInput{grfext.dtx}% +\end{document} +% +% \fi +% +% +% +% \GetFileInfo{grfext.drv} +% +% \title{The \xpackage{grfext} package} +% \date{2019/12/03 v1.3} +% \author{Heiko Oberdiek\thanks +% {Please report any issues at \url{https://github.com/ho-tex/grfext/issues}}} +% +% \maketitle +% +% \begin{abstract} +% This package provides macros for adding and reordering +% graphics extensions of package \xpackage{graphics}. +% \end{abstract} +% +% \tableofcontents +% +% \section{Documentation} +% +% \subsection{Introduction} +% +% If you are not familiar with \LaTeX's graphics bundle, please +% read its documentation \xfile{grffile} \cite{graphics}. +% The bundle contains two packages for graphics inclusion: +% \xpackage{graphics} and \xpackage{graphicx}. The first one +% is loaded by the second one that adds a key value interface. +% +% Graphics files are included in both cases by macro +% \cs{includegraphics}. The file name extension can be omitted. +% Then the graphics package goes through a list of known +% extensions until it finds the graphics file. This extension list +% is set by \cs{DeclareGraphicsExtensions}. The previous contents +% of the list is overwritten. +% +% \subsection{User interface} +% +% This package \xpackage{grfext} provides macros that adds entries +% to the list or remove them. The list may be empty or even +% undefined before. It is always defined afterwards, but can +% be empty (especially after removing entries). +% +% \begin{declcs}{AppendGraphicsExtensions} * \M{ext-list}\\ +% \cs{PrependGraphicsExtensions} * \M{ext-list} +% \end{declcs} +% The argument \meta{ext-list} is a comma separated list whose +% entries are file name extensions including the dot. +% But first the entries are removed from +% \xpackage{graphics}' extension list to avoid multiple +% occurences of the same extension. +% +% Then macro \cs{AppendGraphicsExtensions} adds the entries +% after the end of \xpackage{graphics}' list, whereas +% macro \cs{PrependGraphicsExtensions} puts them in front +% of the list. +% The order matters if a graphics file is available in +% different acceptable formats. Then the first extension +% wins. +% +% The star version of these commands only adds an extensions, +% if a specific graphics rule exists for that extension. +% +% \begin{declcs}{RemoveGraphicsExtensions} \M{ext-list} +% \end{declcs} +% All occurences of file extensions in \meta{ext-list} are +% removed from \xpackage{graphics}' extension list. +% +% \subsection{Package loading} +% +% The package does not define any options. It is loaded +% as usual in \LaTeX, e.g.: +% \begin{quote} +% |\usepackage{grfext}| +% \end{quote} +% +% \begin{declcs}{PrintGraphicsExtensions} +% \end{declcs} +% Macro \cs{PrintGraphicsExtensions} writes the current +% graphics extensions list in the \xfile{.log} file. +% The macros described before do this automatically +% after their operation. +% +% \subsection{Option support for package \xpackage{graphicx}} +% +% Package \xpackage{graphicx} uses the interface of package +% \xpackage{keyval} in order to specify options for +% \cs{includegraphics}. The options can also be set using +% \begin{quote} +% |\setkeys{Gin}{|\meta{options}|}| +% \end{quote} +% The four user macros with the two star forms are available +% as options in family |Gin| as well: +% \begin{quote} +% |AppendGraphicsExtensions={|\meta{ext-list}|}|\\ +% |AppendGraphicsExtensions*={|\meta{ext-list}|}|\\ +% |PrependGraphicsExtensions={|\meta{ext-list}|}|\\ +% |PrependGraphicsExtensions*{|\meta{ext-list}|}|\\ +% |RemoveGraphicsExtensions={|\meta{ext-list}|}|\\ +% |PrintGraphicsExtensions| +% \end{quote} +% This makes it easier to locally change the extension list +% for an included graphics, e.g.: +% \begin{quote} +% |\includegraphics[RemoveGraphicsExtensions={.pdf,PDF}]{image}| +% \end{quote} +% +% \subsection{\plainTeX} +% +% \LaTeX's graphics packages can also be used with \plainTeX. +% The necessary basic \LaTeX\ macros are defined in +% \xfile{miniltx.tex}. This package \xpackage{grfext} also +% relies on it. Example: +%\begin{quote} +%\begin{verbatim} +%\input miniltx.tex\relax +%\def\Gin@driver{pdftex.def} +%\input graphicx.sty\relax +%\input grfext.sty\relax +%\resetatcatcode +%\end{verbatim} +%\end{quote} +% +% \StopEventually{ +% } +% +% \section{Implementation} +% +% \begin{macrocode} +%<*package> +% \end{macrocode} +% +% \subsection{Relead check and identification} +% Reload check, especially if the package is not used with \LaTeX. +% \begin{macrocode} +\begingroup\catcode61\catcode48\catcode32=10\relax% + \catcode13=5 % ^^M + \endlinechar=13 % + \catcode35=6 % # + \catcode39=12 % ' + \catcode44=12 % , + \catcode45=12 % - + \catcode46=12 % . + \catcode58=12 % : + \catcode64=11 % @ + \catcode123=1 % { + \catcode125=2 % } + \expandafter\let\expandafter\x\csname ver@grfext.sty\endcsname + \ifx\x\relax % plain-TeX, first loading + \else + \def\empty{}% + \ifx\x\empty % LaTeX, first loading, + % variable is initialized, but \ProvidesPackage not yet seen + \else + \expandafter\ifx\csname PackageInfo\endcsname\relax + \def\x#1#2{% + \immediate\write-1{Package #1 Info: #2.}% + }% + \else + \def\x#1#2{\PackageInfo{#1}{#2, stopped}}% + \fi + \x{grfext}{The package is already loaded}% + \aftergroup\endinput + \fi + \fi +\endgroup% +% \end{macrocode} +% Package identification: +% \begin{macrocode} +\begingroup\catcode61\catcode48\catcode32=10\relax% + \catcode13=5 % ^^M + \endlinechar=13 % + \catcode35=6 % # + \catcode39=12 % ' + \catcode40=12 % ( + \catcode41=12 % ) + \catcode44=12 % , + \catcode45=12 % - + \catcode46=12 % . + \catcode47=12 % / + \catcode58=12 % : + \catcode64=11 % @ + \catcode91=12 % [ + \catcode93=12 % ] + \catcode123=1 % { + \catcode125=2 % } + \expandafter\ifx\csname ProvidesPackage\endcsname\relax + \def\x#1#2#3[#4]{\endgroup + \immediate\write-1{Package: #3 #4}% + \xdef#1{#4}% + }% + \else + \def\x#1#2[#3]{\endgroup + #2[{#3}]% + \ifx#1\@undefined + \xdef#1{#3}% + \fi + \ifx#1\relax + \xdef#1{#3}% + \fi + }% + \fi +\expandafter\x\csname ver@grfext.sty\endcsname +\ProvidesPackage{grfext}% + [2019/12/03 v1.3 Manage graphics extensions (HO)]% +% \end{macrocode} +% +% \subsection{Catcodes} +% +% \begin{macrocode} +\begingroup\catcode61\catcode48\catcode32=10\relax% + \catcode13=5 % ^^M + \endlinechar=13 % + \catcode123=1 % { + \catcode125=2 % } + \catcode64=11 % @ + \def\x{\endgroup + \expandafter\edef\csname grfext@AtEnd\endcsname{% + \endlinechar=\the\endlinechar\relax + \catcode13=\the\catcode13\relax + \catcode32=\the\catcode32\relax + \catcode35=\the\catcode35\relax + \catcode61=\the\catcode61\relax + \catcode64=\the\catcode64\relax + \catcode123=\the\catcode123\relax + \catcode125=\the\catcode125\relax + }% + }% +\x\catcode61\catcode48\catcode32=10\relax% +\catcode13=5 % ^^M +\endlinechar=13 % +\catcode35=6 % # +\catcode64=11 % @ +\catcode123=1 % { +\catcode125=2 % } +\def\TMP@EnsureCode#1#2{% + \edef\grfext@AtEnd{% + \grfext@AtEnd + \catcode#1=\the\catcode#1\relax + }% + \catcode#1=#2\relax +} +\TMP@EnsureCode{42}{12}% * +\TMP@EnsureCode{44}{12}% , +\TMP@EnsureCode{47}{12}% / +\TMP@EnsureCode{58}{12}% : +\TMP@EnsureCode{60}{12}% < +\TMP@EnsureCode{62}{12}% > +\TMP@EnsureCode{91}{12}% [ +\TMP@EnsureCode{93}{12}% ] +\edef\grfext@AtEnd{\grfext@AtEnd\noexpand\endinput} +% \end{macrocode} +% +% \subsection{\plainTeX} +% +% \begin{macro}{\@expandtwoargs} +% Requirement is \xfile{miniltx.tex}, but we need also +% \LaTeX's \cs{@expandtwoargs}. +% \begin{macrocode} +\@ifundefined{@expandtwoargs}{% + \def\@expandtwoargs#1#2#3{% + \edef\reserved@a{\noexpand#1{#2}{#3}}% + \reserved@a + }% +}{} +% \end{macrocode} +% \end{macro} +% +% \subsection{Add} +% +% \begin{macro}{\AppendGraphicsExtensions} +% \begin{macrocode} +\newcommand*{\AppendGraphicsExtensions}{% + \@ifundefined{Gin@extensions}{% + \let\Gin@extensions\@empty + }{}% + \@ifstar{\grfext@Append\grfext@Check}{\grfext@Append\grfext@@Add}% +}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\grfext@Append} +% \begin{macrocode} +\def\grfext@Append#1#2{% + \let\grfext@Print\@gobble + \edef\grfext@next{% + \noexpand\grfext@Add\noexpand#1{% + \zap@space#2 \@empty + }{\noexpand\Gin@extensions,}{}% + }% + \grfext@next + \let\grfext@Print\grfext@@Print + \grfext@Print\AppendGraphicsExtensions +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\PrependGraphicsExtensions} +% \begin{macrocode} +\newcommand*{\PrependGraphicsExtensions}{% + \@ifundefined{Gin@extensions}{% + \let\Gin@extensions\@empty + }{}% + \@ifstar{\grfext@Prepend\grfext@Check}{\grfext@Prepend\grfext@@Add}% +}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\grfext@Prepend} +% \begin{macrocode} +\def\grfext@Prepend#1#2{% + \let\grfext@Print\@gobble + \edef\grfext@next{% + \noexpand\grfext@Add\noexpand#1{% + \zap@space#2 \@empty + }{}{,\noexpand\Gin@extensions}% + }% + \grfext@next + \let\grfext@Print\grfext@@Print + \grfext@Print\PrependGraphicsExtensions +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\grfext@Add} +% \begin{macrocode} +\def\grfext@Add#1#2{% + #1{#2}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\grfext@@Add} +% \begin{macrocode} +\def\grfext@@Add#1#2#3{% + \RemoveGraphicsExtensions{#1}% + \ifx\Gin@extensions\@empty + \def\Gin@extensions{#1}% + \else + \edef\Gin@extensions{#2#1#3}% + \fi +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Check} +% +% \begin{macro}{\grfext@Check} +% \begin{macrocode} +\def\grfext@Check#1{% + \let\grfext@tmp\@empty + \@for\grfext@ext:=#1\do{% + \@ifundefined{Gin@rule@\grfext@ext}{% + }{% + \ifx\grfext@tmp\@empty + \let\grfext@tmp\grfext@ext + \else + \edef\grfext@tmp{\grfext@tmp,\grfext@ext}% + \fi + }% + }% + \ifx\grfext@tmp\@empty + \def\grfext@next##1##2{}% + \else + \edef\grfext@next{% + \noexpand\grfext@@Add{\grfext@tmp}% + }% + \fi + \grfext@next +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Remove} +% +% \begin{macro}{\RemoveGraphicsExtensions} +% \begin{macrocode} +\newcommand*{\RemoveGraphicsExtensions}[1]{% + \@ifundefined{Gin@extensions}{% + \def\Gin@extensions{}% + }{% + \edef\grfext@tmp{\zap@space#1 \@empty}% + \@for\grfext@ext:=\grfext@tmp\do{% + \def\grfext@next{% + \let\grfext@tmp\Gin@extensions + \@expandtwoargs + \@removeelement\grfext@ext\Gin@extensions\Gin@extensions + \ifx\grfext@tmp\Gin@extensions + \let\grfext@next\relax + \fi + \grfext@next + }% + \grfext@next + }% + }% + \grfext@Print\RemoveGraphicsExtensions +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Print} +% +% \begin{macrocode} +\RequirePackage{infwarerr}[2007/09/09] +% \end{macrocode} +% +% \begin{macro}{\PrintGraphicsExtensions} +% \begin{macrocode} +\def\PrintGraphicsExtensions{% + \grfext@Print\PrintGraphicsExtensions +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\grfext@Print} +% \begin{macrocode} +\def\grfext@Print#1{% + \@PackageInfo{grfext}{% + Graphics extension search list:\MessageBreak + \@ifundefined{Gin@extensions}{% + % + }{% + [\Gin@extensions]% + }\MessageBreak + \string#1% + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\grfext@@Print} +% \begin{macrocode} +\let\grfext@@Print\grfext@Print +% \end{macrocode} +% \end{macro} +% +% \subsection{Defining options for package \xpackage{graphicx}} +% +% \begin{macrocode} +\RequirePackage{kvdefinekeys}[2010/03/01] +\kv@define@key{Gin}{AppendGraphicsExtensions}{% + \AppendGraphicsExtensions{#1}% +} +\kv@define@key{Gin}{AppendGraphicsExtensions*}{% + \AppendGraphicsExtensions*{#1}% +} +\kv@define@key{Gin}{PrependGraphicsExtensions}{% + \PrependGraphicsExtensions{#1}% +} +\kv@define@key{Gin}{PrependGraphicsExtensions*}{% + \PrependGraphicsExtensions*{#1}% +} +\kv@define@key{Gin}{RemoveGraphicsExtensions}{% + \RemoveGraphicsExtensions{#1}% +} +\kv@define@key{Gin}{PrintGraphicsExtensions}[]{% + \PrintGraphicsExtensions +} +% \end{macrocode} +% +% \begin{macrocode} +\grfext@AtEnd% +% +% \end{macrocode} +% \section{Installation} +% +% \subsection{Download} +% +% \paragraph{Package.} This package is available on +% CTAN\footnote{\CTANpkg{grfext}}: +% \begin{description} +% \item[\CTAN{macros/latex/contrib/grfext/grfext.dtx}] The source file. +% \item[\CTAN{macros/latex/contrib/grfext/grfext.pdf}] Documentation. +% \end{description} +% +% +% \paragraph{Bundle.} All the packages of the bundle `grfext' +% are also available in a TDS compliant ZIP archive. There +% the packages are already unpacked and the documentation files +% are generated. The files and directories obey the TDS standard. +% \begin{description} +% \item[\CTANinstall{install/macros/latex/contrib/grfext.tds.zip}] +% \end{description} +% \emph{TDS} refers to the standard ``A Directory Structure +% for \TeX\ Files'' (\CTANpkg{tds}). Directories +% with \xfile{texmf} in their name are usually organized this way. +% +% \subsection{Bundle installation} +% +% \paragraph{Unpacking.} Unpack the \xfile{grfext.tds.zip} in the +% TDS tree (also known as \xfile{texmf} tree) of your choice. +% Example (linux): +% \begin{quote} +% |unzip grfext.tds.zip -d ~/texmf| +% \end{quote} +% +% \subsection{Package installation} +% +% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting +% \docstrip\ archive. The files are extracted by running the +% \xfile{.dtx} through \plainTeX: +% \begin{quote} +% \verb|tex grfext.dtx| +% \end{quote} +% +% \paragraph{TDS.} Now the different files must be moved into +% the different directories in your installation TDS tree +% (also known as \xfile{texmf} tree): +% \begin{quote} +% \def\t{^^A +% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} +% grfext.sty & tex/latex/grfext/grfext.sty\\ +% grfext.pdf & doc/latex/grfext/grfext.pdf\\ +% grfext.dtx & source/latex/grfext/grfext.dtx\\ +% \end{tabular}^^A +% }^^A +% \sbox0{\t}^^A +% \ifdim\wd0>\linewidth +% \begingroup +% \advance\linewidth by\leftmargin +% \advance\linewidth by\rightmargin +% \edef\x{\endgroup +% \def\noexpand\lw{\the\linewidth}^^A +% }\x +% \def\lwbox{^^A +% \leavevmode +% \hbox to \linewidth{^^A +% \kern-\leftmargin\relax +% \hss +% \usebox0 +% \hss +% \kern-\rightmargin\relax +% }^^A +% }^^A +% \ifdim\wd0>\lw +% \sbox0{\small\t}^^A +% \ifdim\wd0>\linewidth +% \ifdim\wd0>\lw +% \sbox0{\footnotesize\t}^^A +% \ifdim\wd0>\linewidth +% \ifdim\wd0>\lw +% \sbox0{\scriptsize\t}^^A +% \ifdim\wd0>\linewidth +% \ifdim\wd0>\lw +% \sbox0{\tiny\t}^^A +% \ifdim\wd0>\linewidth +% \lwbox +% \else +% \usebox0 +% \fi +% \else +% \lwbox +% \fi +% \else +% \usebox0 +% \fi +% \else +% \lwbox +% \fi +% \else +% \usebox0 +% \fi +% \else +% \lwbox +% \fi +% \else +% \usebox0 +% \fi +% \else +% \lwbox +% \fi +% \else +% \usebox0 +% \fi +% \end{quote} +% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's +% TDS installing feature, then some files can already be in the right +% place, see the documentation of \docstrip. +% +% \subsection{Refresh file name databases} +% +% If your \TeX~distribution +% (\TeX\,Live, \mikTeX, \dots) relies on file name databases, you must refresh +% these. For example, \TeX\,Live\ users run \verb|texhash| or +% \verb|mktexlsr|. +% +% \subsection{Some details for the interested} +% +% \paragraph{Unpacking with \LaTeX.} +% The \xfile{.dtx} chooses its action depending on the format: +% \begin{description} +% \item[\plainTeX:] Run \docstrip\ and extract the files. +% \item[\LaTeX:] Generate the documentation. +% \end{description} +% If you insist on using \LaTeX\ for \docstrip\ (really, +% \docstrip\ does not need \LaTeX), then inform the autodetect routine +% about your intention: +% \begin{quote} +% \verb|latex \let\install=y\input{grfext.dtx}| +% \end{quote} +% Do not forget to quote the argument according to the demands +% of your shell. +% +% \paragraph{Generating the documentation.} +% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate +% the documentation. The process can be configured by the +% configuration file \xfile{ltxdoc.cfg}. For instance, put this +% line into this file, if you want to have A4 as paper format: +% \begin{quote} +% \verb|\PassOptionsToClass{a4paper}{article}| +% \end{quote} +% An example follows how to generate the +% documentation with pdf\LaTeX: +% \begin{quote} +%\begin{verbatim} +%pdflatex grfext.dtx +%makeindex -s gind.ist grfext.idx +%pdflatex grfext.dtx +%makeindex -s gind.ist grfext.idx +%pdflatex grfext.dtx +%\end{verbatim} +% \end{quote} +% +% \begin{thebibliography}{9} +% +% \bibitem{graphics} +% David Carlisle, Sebastian Rahtz: \textit{The \xpackage{graphics} package}; +% 2006/02/20 v1.0o; +% \CTAN{macros/latex/required/graphics/graphics.dtx}. +% +% \end{thebibliography} +% +% \begin{History} +% \begin{Version}{2007/09/30 v1.0} +% \item +% First public version. +% \end{Version} +% \begin{Version}{2010/08/19 v1.1} +% \item +% User macros are also made available as keyval options for +% package \xpackage{graphicx}. +% \end{Version} +% \begin{Version}{2016/05/16 v1.2} +% \item +% Documentation updates. +% \end{Version} +% \begin{Version}{2019/12/03 v1.3} +% \item +% Documentation updates. +% \end{Version} +% \end{History} +% +% \PrintIndex +% +% \Finale +\endinput diff --git a/macros/latex/contrib/grfext/grfext.pdf b/macros/latex/contrib/grfext/grfext.pdf new file mode 100644 index 0000000000..7199ac71ce Binary files /dev/null and b/macros/latex/contrib/grfext/grfext.pdf differ diff --git a/macros/latex/contrib/infwarerr/README.md b/macros/latex/contrib/infwarerr/README.md new file mode 100644 index 0000000000..4d4d3c7628 --- /dev/null +++ b/macros/latex/contrib/infwarerr/README.md @@ -0,0 +1,9 @@ +# infwarerr + +infwarerr package for LaTeX + + +This package provides a complete set of macros for informations, +warnings and error messages with support for plain TeX. + + diff --git a/macros/latex/contrib/infwarerr/infwarerr.dtx b/macros/latex/contrib/infwarerr/infwarerr.dtx new file mode 100644 index 0000000000..e93fc77df3 --- /dev/null +++ b/macros/latex/contrib/infwarerr/infwarerr.dtx @@ -0,0 +1,850 @@ +% \iffalse meta-comment +% +% File: infwarerr.dtx +% Version: 2019/12/03 v1.5 +% Info: Providing info/warning/error messages +% +% Copyright (C) +% 2007, 2010 Heiko Oberdiek +% 2016-2019 Oberdiek Package Support Group +% https://github.com/ho-tex/infwarerr/issues +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3c of this license or (at your option) any later +% version. This version of this license is in +% https://www.latex-project.org/lppl/lppl-1-3c.txt +% and the latest version of this license is in +% https://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 Maintainers of this work are +% Heiko Oberdiek and the Oberdiek Package Support Group +% https://github.com/ho-tex/infwarerr/issues +% +% The Base Interpreter refers to any `TeX-Format', +% because some files are installed in TDS:tex/generic//. +% +% This work consists of the main source file infwarerr.dtx +% and the derived files +% infwarerr.sty, infwarerr.pdf, infwarerr.ins, infwarerr.drv, +% infwarerr-test1.tex, infwarerr-test2.tex, +% infwarerr-test3.tex. +% +% Distribution: +% CTAN:macros/latex/contrib/infwarerr/infwarerr.dtx +% CTAN:macros/latex/contrib/infwarerr/infwarerr.pdf +% +% Unpacking: +% (a) If infwarerr.ins is present: +% tex infwarerr.ins +% (b) Without infwarerr.ins: +% tex infwarerr.dtx +% (c) If you insist on using LaTeX +% latex \let\install=y\input{infwarerr.dtx} +% (quote the arguments according to the demands of your shell) +% +% Documentation: +% (a) If infwarerr.drv is present: +% latex infwarerr.drv +% (b) Without infwarerr.drv: +% latex infwarerr.dtx; ... +% The class ltxdoc loads the configuration file ltxdoc.cfg +% if available. Here you can specify further options, e.g. +% use A4 as paper format: +% \PassOptionsToClass{a4paper}{article} +% +% Programm calls to get the documentation (example): +% pdflatex infwarerr.dtx +% makeindex -s gind.ist infwarerr.idx +% pdflatex infwarerr.dtx +% makeindex -s gind.ist infwarerr.idx +% pdflatex infwarerr.dtx +% +% Installation: +% TDS:tex/generic/infwarerr/infwarerr.sty +% TDS:doc/latex/infwarerr/infwarerr.pdf +% TDS:source/latex/infwarerr/infwarerr.dtx +% +%<*ignore> +\begingroup + \catcode123=1 % + \catcode125=2 % + \def\x{LaTeX2e}% +\expandafter\endgroup +\ifcase 0\ifx\install y1\fi\expandafter + \ifx\csname processbatchFile\endcsname\relax\else1\fi + \ifx\fmtname\x\else 1\fi\relax +\else\csname fi\endcsname +% +%<*install> +\input docstrip.tex +\Msg{************************************************************************} +\Msg{* Installation} +\Msg{* Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO)} +\Msg{************************************************************************} + +\keepsilent +\askforoverwritefalse + +\let\MetaPrefix\relax +\preamble + +This is a generated file. + +Project: infwarerr +Version: 2019/12/03 v1.5 + +Copyright (C) + 2007, 2010 Heiko Oberdiek + 2016-2019 Oberdiek Package Support Group + +This work may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either +version 1.3c of this license or (at your option) any later +version. This version of this license is in + https://www.latex-project.org/lppl/lppl-1-3c.txt +and the latest version of this license is in + https://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 Maintainers of this work are +Heiko Oberdiek and the Oberdiek Package Support Group +https://github.com/ho-tex/infwarerr/issues + + +The Base Interpreter refers to any `TeX-Format', +because some files are installed in TDS:tex/generic//. + +This work consists of the main source file infwarerr.dtx +and the derived files + infwarerr.sty, infwarerr.pdf, infwarerr.ins, infwarerr.drv, + infwarerr-test1.tex, infwarerr-test2.tex, + infwarerr-test3.tex. + +\endpreamble +\let\MetaPrefix\DoubleperCent + +\generate{% + \file{infwarerr.ins}{\from{infwarerr.dtx}{install}}% + \file{infwarerr.drv}{\from{infwarerr.dtx}{driver}}% + \usedir{tex/generic/infwarerr}% + \file{infwarerr.sty}{\from{infwarerr.dtx}{package}}% +% \usedir{doc/latex/infwarerr/test}% +% \file{infwarerr-test1.tex}{\from{infwarerr.dtx}{test1}}% +% \file{infwarerr-test2.tex}{\from{infwarerr.dtx}{test2}}% +% \file{infwarerr-test3.tex}{\from{infwarerr.dtx}{test3}}% +} + +\catcode32=13\relax% active space +\let =\space% +\Msg{************************************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move the following} +\Msg{* file into a directory searched by TeX:} +\Msg{*} +\Msg{* infwarerr.sty} +\Msg{*} +\Msg{* To produce the documentation run the file `infwarerr.drv'} +\Msg{* through LaTeX.} +\Msg{*} +\Msg{* Happy TeXing!} +\Msg{*} +\Msg{************************************************************************} + +\endbatchfile +% +%<*ignore> +\fi +% +%<*driver> +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{infwarerr.drv}% + [2019/12/03 v1.5 Providing info/warning/error messages (HO)]% +\documentclass{ltxdoc} +\usepackage{holtxdoc}[2011/11/22] +\begin{document} + \DocInput{infwarerr.dtx}% +\end{document} +% +% \fi +% +% +% +% \GetFileInfo{infwarerr.drv} +% +% \title{The \xpackage{infwarerr} package} +% \date{2019/12/03 v1.5} +% \author{Heiko Oberdiek\thanks +% {Please report any issues at \url{https://github.com/ho-tex/infwarerr/issues}}} +% +% \maketitle +% +% \begin{abstract} +% This package provides a complete set of macros for informations, +% warnings and error messages with support for \plainTeX. +% \end{abstract} +% +% \tableofcontents +% +% \section{Documentation} +% +% Package \xpackage{infwarerr} defines the following set of commands, +% given as pseudo regular expression: +% \begin{quote} +% \verb+\@(Package|Class)(Info|InfoNoLine|Warning|WarningNoLine|Error)+^^A +% \kern-\rightmargin +% \end{quote} +% The first argument is the package or class in question. The second +% argument contains the message text. \cs{MessageBreak} is supported. +% In case of error messages, the third argument contains the help +% text. Supported are \LaTeX's message texts \cs{@ehc}: +% \begin{quote} +% |Try typing to proceed|\\ +% |If that doesn't work, type X to quit.| +% \end{quote} +% and \cs{@ehd}: +% \begin{quote} +% |You're in trouble here. Try typing to proceed|\\ +% |If that doesn't work, type X to quit.| +% \end{quote} +% +% The package is intended for macro writers that want to write +% code that works for both \LaTeX\ and \plainTeX. If \LaTeX\ is +% detected, then the macros of this package will only be wrappers +% for \LaTeX's macros. Otherwise \LaTeX's macros will be mimicked +% for use with \plainTeX. +% +% \StopEventually{ +% } +% +% \section{Implementation} +% +% \begin{macrocode} +%<*package> +% \end{macrocode} +% +% \subsection{Reload check and package identification} +% Reload check, especially if the package is not used with \LaTeX. +% \begin{macrocode} +\begingroup\catcode61\catcode48\catcode32=10\relax% + \catcode13=5 % ^^M + \endlinechar=13 % + \catcode35=6 % # + \catcode39=12 % ' + \catcode44=12 % , + \catcode45=12 % - + \catcode46=12 % . + \catcode58=12 % : + \catcode64=11 % @ + \catcode123=1 % { + \catcode125=2 % } + \expandafter\let\expandafter\x\csname ver@infwarerr.sty\endcsname + \ifx\x\relax % plain-TeX, first loading + \else + \def\empty{}% + \ifx\x\empty % LaTeX, first loading, + % variable is initialized, but \ProvidesPackage not yet seen + \else + \expandafter\ifx\csname PackageInfo\endcsname\relax + \def\x#1#2{% + \immediate\write-1{Package #1 Info: #2.}% + }% + \else + \def\x#1#2{\PackageInfo{#1}{#2, stopped}}% + \fi + \x{infwarerr}{The package is already loaded}% + \aftergroup\endinput + \fi + \fi +\endgroup% +% \end{macrocode} +% Package identification: +% \begin{macrocode} +\begingroup\catcode61\catcode48\catcode32=10\relax% + \catcode13=5 % ^^M + \endlinechar=13 % + \catcode35=6 % # + \catcode39=12 % ' + \catcode40=12 % ( + \catcode41=12 % ) + \catcode44=12 % , + \catcode45=12 % - + \catcode46=12 % . + \catcode47=12 % / + \catcode58=12 % : + \catcode64=11 % @ + \catcode91=12 % [ + \catcode93=12 % ] + \catcode123=1 % { + \catcode125=2 % } + \expandafter\ifx\csname ProvidesPackage\endcsname\relax + \def\x#1#2#3[#4]{\endgroup + \immediate\write-1{Package: #3 #4}% + \xdef#1{#4}% + }% + \else + \def\x#1#2[#3]{\endgroup + #2[{#3}]% + \ifx#1\@undefined + \xdef#1{#3}% + \fi + \ifx#1\relax + \xdef#1{#3}% + \fi + }% + \fi +\expandafter\x\csname ver@infwarerr.sty\endcsname +\ProvidesPackage{infwarerr}% + [2019/12/03 v1.5 Providing info/warning/error messages (HO)]% +% \end{macrocode} +% +% \subsection{Catcodes} +% +% \begin{macrocode} +\begingroup\catcode61\catcode48\catcode32=10\relax% + \catcode13=5 % ^^M + \endlinechar=13 % + \catcode123=1 % { + \catcode125=2 % } + \catcode64=11 % @ + \def\x{\endgroup + \expandafter\edef\csname InfWarErr@AtEnd\endcsname{% + \endlinechar=\the\endlinechar\relax + \catcode13=\the\catcode13\relax + \catcode32=\the\catcode32\relax + \catcode35=\the\catcode35\relax + \catcode61=\the\catcode61\relax + \catcode64=\the\catcode64\relax + \catcode123=\the\catcode123\relax + \catcode125=\the\catcode125\relax + }% + }% +\x\catcode61\catcode48\catcode32=10\relax% +\catcode13=5 % ^^M +\endlinechar=13 % +\catcode35=6 % # +\catcode64=11 % @ +\catcode123=1 % { +\catcode125=2 % } +\def\TMP@EnsureCode#1#2{% + \edef\InfWarErr@AtEnd{% + \InfWarErr@AtEnd + \catcode#1=\the\catcode#1\relax + }% + \catcode#1=#2\relax +} +\TMP@EnsureCode{10}{12}% ^^J +\TMP@EnsureCode{39}{12}% ' +\TMP@EnsureCode{40}{12}% ( +\TMP@EnsureCode{41}{12}% ) +\TMP@EnsureCode{44}{12}% , +\TMP@EnsureCode{45}{12}% - +\TMP@EnsureCode{46}{12}% . +\TMP@EnsureCode{58}{12}% : +\TMP@EnsureCode{60}{12}% < +\TMP@EnsureCode{62}{12}% > +\TMP@EnsureCode{94}{7}% ^ +\edef\InfWarErr@AtEnd{\InfWarErr@AtEnd\noexpand\endinput} +% \end{macrocode} +% +% \subsection{\LaTeX\ detection} +% +% \begin{macrocode} +\begingroup + \let\x=Y% + \def\check#1{% + \@check{Generic}{#1}% + \@check{Package}{#1}% + \@check{Class}{#1}% + }% + \def\@check#1#2{% + \expandafter\ifx\csname #1#2\endcsname\relax + \let\x=N% + \fi + }% + \check{Info}% + \check{Warning}% + \check{Error}% + \@check{Package}{WarningNoLine}% + \@check{Class}{WarningNoLine}% + \@check{}{@ehc}% + \@check{}{@ehd}% +\expandafter\endgroup +\ifx\x Y% +% \end{macrocode} +% +% \subsection{Version for \LaTeX} +% +% \begin{macro}{\@PackageInfo} +% \begin{macrocode} + \let\@PackageInfo\PackageInfo +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@PackageInfoNoLine} +% \begin{macrocode} + \def\@PackageInfoNoLine#1#2{% + \PackageInfo{#1}{#2\@gobble}% + }% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@ClassInfo} +% \begin{macrocode} + \let\@ClassInfo\ClassInfo +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@ClassInfoNoLine} +% \begin{macrocode} + \def\@ClassInfoNoLine#1#2{% + \ClassInfo{#1}{#2\@gobble}% + }% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@PackageWarning} +% \begin{macrocode} + \let\@PackageWarning\PackageWarning +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@PackageWarningNoLine} +% \begin{macrocode} + \let\@PackageWarningNoLine\PackageWarningNoLine +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@ClassWarning} +% \begin{macrocode} + \let\@ClassWarning\ClassWarning +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@ClassWarningNoLine} +% \begin{macrocode} + \let\@ClassWarningNoLine\ClassWarningNoLine +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@PackageError} +% \begin{macrocode} + \let\@PackageError\PackageError +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@ClassError} +% \begin{macrocode} + \let\@ClassError\ClassError +% \end{macrocode} +% \end{macro} +% \begin{macrocode} + \expandafter\InfWarErr@AtEnd +\fi% +% \end{macrocode} +% +% \subsection{Version for \plainTeX} +% +% \begin{macro}{\InfWarErr@online} +% \begin{macrocode} +\begingroup\expandafter\endgroup +\ifcase\expandafter\ifx\csname inputlineno\endcsname\relax + 0 % + \else + \ifnum\inputlineno<0 % + 0 % + \else + 1 % + \fi + \fi + \def\InfWarErr@online{}% +\else + \def\InfWarErr@online{ on input line \the\inputlineno}% +\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\InfWarErr@protected} +% \begin{macrocode} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname protected\endcsname\relax + \def\InfWarErr@protected{}% +\else + \let\InfWarErr@protected\protected +\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\InfWarErr@unused} +% \begin{macrocode} +\chardef\InfWarErr@unused=16 % +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\InfWarErr@ehc} +% \begin{macrocode} +\def\InfWarErr@ehc{% + Try typing \space \space to proceed.\MessageBreak + If that doesn't work, type \space X \space to quit.% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\InfWarErr@ehd} +% \begin{macrocode} +\def\InfWarErr@ehd{% + You're in trouble here. \space\@ehc +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\InfWarErr@GenericInfo} +% \begin{macrocode} +\InfWarErr@protected\def\InfWarErr@GenericInfo#1#2{% + \begingroup + \let\on@line\InfWarErr@online + \long\def\@gobble##1{}% + \def\space{ }% + \def\@spaces{\space\space\space\space}% + \def\MessageBreak{^^J#1}% + \newlinechar=10 % + \escapechar=92 % + \immediate\write-1{#2\on@line.}% + \endgroup +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\InfWarErr@GenericWarning} +% \begin{macrocode} +\InfWarErr@protected\def\InfWarErr@GenericWarning#1#2{% + \begingroup + \let\on@line\InfWarErr@online + \long\def\@gobble##1{}% + \def\space{ }% + \def\@spaces{\space\space\space\space}% + \def\MessageBreak{^^J#1}% + \newlinechar=10 % + \escapechar=92 % + \immediate\write\InfWarErr@unused{^^J#2\on@line.^^J}% + \endgroup +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\InfWarErr@GenericError} +% Old \TeX\ versions below 3.141 where |^^J| is not working +% as newline in error message and help texts are not supported. +% \begin{macrocode} +\InfWarErr@protected\def\InfWarErr@GenericError#1#2#3#4{% + \begingroup + \immediate\write\InfWarErr@unused{}% + \def\space{ }% + \def\@spaces{\space\space\space\space}% + \let\@ehc\InfWarErr@ehc + \let\@ehd\InfWarErr@ehd + \let\on@line\InfWarErr@online + \def\MessageBreak{^^J}% + \newlinechar=10 % + \escapechar=92 % + \edef\InfWarErr@help{\noexpand\errhelp{#4}}% + \InfWarErr@help + \def\MessageBreak{^^J#1}% + \errmessage{% + #2.^^J^^J% + #3^^J% + Type \space H \space for immediate help.^^J ...^^J% + }% + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@PackageInfo} +% \begin{macrocode} +\def\@PackageInfo#1#2{% + \InfWarErr@GenericInfo{% + (#1) \@spaces\@spaces\@spaces + }{% + Package #1 Info: #2% + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@PackageInfoNoLine} +% \begin{macrocode} +\def\@PackageInfoNoLine#1#2{% + \@PackageInfo{#1}{#2\@gobble}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@ClassInfo} +% \begin{macrocode} +\def\@ClassInfo#1#2{% + \InfWarErr@GenericInfo{% + (#1) \space\space\@spaces\@spaces + }{% + Class #1 Info: #2% + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@ClassInfoNoLine} +% \begin{macrocode} +\def\@ClassInfoNoLine#1#2{% + \@ClassInfo{#1}{#2\@gobble}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@PackageWarning} +% \begin{macrocode} +\def\@PackageWarning#1#2{% + \InfWarErr@GenericWarning{% + (#1)\@spaces\@spaces\@spaces\@spaces + }{% + Package #1 Warning: #2% + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@PackageWarningNoLine} +% \begin{macrocode} +\def\@PackageWarningNoLine#1#2{% + \@PackageWarning{#1}{#2\@gobble}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@ClassWarning} +% \begin{macrocode} +\def\@ClassWarning#1#2{% + \InfWarErr@GenericWarning{% + (#1) \space\@spaces\@spaces\@spaces + }{% + Class #1 Warning: #2% + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@ClassWarningNoLine} +% \begin{macrocode} +\def\@ClassWarningNoLine#1#2{% + \@ClassWarning{#1}{#2\@gobble}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@PackageError} +% \begin{macrocode} +\def\@PackageError#1#2#3{% + \InfWarErr@GenericError{% + (#1)\@spaces\@spaces\@spaces\@spaces + }{% + Package #1 Error: #2% + }{% + See the #1 package documentation for explanation.% + }{#3}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@ClassError} +% \begin{macrocode} +\def\@ClassError#1#2#3{% + \InfWarErr@GenericError{% + (#1) \space\@spaces\@spaces\@spaces + }{% + Class #1 Error: #2% + }{% + See the #1 class documentation for explanation.% + }{#3}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\InfWarErr@AtEnd% +% +% \end{macrocode} +% \section{Installation} +% +% \subsection{Download} +% +% \paragraph{Package.} This package is available on +% CTAN\footnote{\CTANpkg{infwarerr}}: +% \begin{description} +% \item[\CTAN{macros/latex/contrib/infwarerr/infwarerr.dtx}] The source file. +% \item[\CTAN{macros/latex/contrib/infwarerr/infwarerr.pdf}] Documentation. +% \end{description} +% +% +% \paragraph{Bundle.} All the packages of the bundle `infwarerr' +% are also available in a TDS compliant ZIP archive. There +% the packages are already unpacked and the documentation files +% are generated. The files and directories obey the TDS standard. +% \begin{description} +% \item[\CTANinstall{install/macros/latex/contrib/infwarerr.tds.zip}] +% \end{description} +% \emph{TDS} refers to the standard ``A Directory Structure +% for \TeX\ Files'' (\CTANpkg{tds}). Directories +% with \xfile{texmf} in their name are usually organized this way. +% +% \subsection{Bundle installation} +% +% \paragraph{Unpacking.} Unpack the \xfile{infwarerr.tds.zip} in the +% TDS tree (also known as \xfile{texmf} tree) of your choice. +% Example (linux): +% \begin{quote} +% |unzip infwarerr.tds.zip -d ~/texmf| +% \end{quote} +% +% \subsection{Package installation} +% +% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting +% \docstrip\ archive. The files are extracted by running the +% \xfile{.dtx} through \plainTeX: +% \begin{quote} +% \verb|tex infwarerr.dtx| +% \end{quote} +% +% \paragraph{TDS.} Now the different files must be moved into +% the different directories in your installation TDS tree +% (also known as \xfile{texmf} tree): +% \begin{quote} +% \def\t{^^A +% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} +% infwarerr.sty & tex/generic/infwarerr/infwarerr.sty\\ +% infwarerr.pdf & doc/latex/infwarerr/infwarerr.pdf\\ +% infwarerr.dtx & source/latex/infwarerr/infwarerr.dtx\\ +% \end{tabular}^^A +% }^^A +% \sbox0{\t}^^A +% \ifdim\wd0>\linewidth +% \begingroup +% \advance\linewidth by\leftmargin +% \advance\linewidth by\rightmargin +% \edef\x{\endgroup +% \def\noexpand\lw{\the\linewidth}^^A +% }\x +% \def\lwbox{^^A +% \leavevmode +% \hbox to \linewidth{^^A +% \kern-\leftmargin\relax +% \hss +% \usebox0 +% \hss +% \kern-\rightmargin\relax +% }^^A +% }^^A +% \ifdim\wd0>\lw +% \sbox0{\small\t}^^A +% \ifdim\wd0>\linewidth +% \ifdim\wd0>\lw +% \sbox0{\footnotesize\t}^^A +% \ifdim\wd0>\linewidth +% \ifdim\wd0>\lw +% \sbox0{\scriptsize\t}^^A +% \ifdim\wd0>\linewidth +% \ifdim\wd0>\lw +% \sbox0{\tiny\t}^^A +% \ifdim\wd0>\linewidth +% \lwbox +% \else +% \usebox0 +% \fi +% \else +% \lwbox +% \fi +% \else +% \usebox0 +% \fi +% \else +% \lwbox +% \fi +% \else +% \usebox0 +% \fi +% \else +% \lwbox +% \fi +% \else +% \usebox0 +% \fi +% \else +% \lwbox +% \fi +% \else +% \usebox0 +% \fi +% \end{quote} +% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's +% TDS installing feature, then some files can already be in the right +% place, see the documentation of \docstrip. +% +% \subsection{Refresh file name databases} +% +% If your \TeX~distribution +% (\TeX\,Live, \mikTeX, \dots) relies on file name databases, you must refresh +% these. For example, \TeX\,Live\ users run \verb|texhash| or +% \verb|mktexlsr|. +% +% \subsection{Some details for the interested} +% +% \paragraph{Unpacking with \LaTeX.} +% The \xfile{.dtx} chooses its action depending on the format: +% \begin{description} +% \item[\plainTeX:] Run \docstrip\ and extract the files. +% \item[\LaTeX:] Generate the documentation. +% \end{description} +% If you insist on using \LaTeX\ for \docstrip\ (really, +% \docstrip\ does not need \LaTeX), then inform the autodetect routine +% about your intention: +% \begin{quote} +% \verb|latex \let\install=y\input{infwarerr.dtx}| +% \end{quote} +% Do not forget to quote the argument according to the demands +% of your shell. +% +% \paragraph{Generating the documentation.} +% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate +% the documentation. The process can be configured by the +% configuration file \xfile{ltxdoc.cfg}. For instance, put this +% line into this file, if you want to have A4 as paper format: +% \begin{quote} +% \verb|\PassOptionsToClass{a4paper}{article}| +% \end{quote} +% An example follows how to generate the +% documentation with pdf\LaTeX: +% \begin{quote} +%\begin{verbatim} +%pdflatex infwarerr.dtx +%makeindex -s gind.ist infwarerr.idx +%pdflatex infwarerr.dtx +%makeindex -s gind.ist infwarerr.idx +%pdflatex infwarerr.dtx +%\end{verbatim} +% \end{quote} +% +% \begin{History} +% \begin{Version}{2007/04/26 v1.0} +% \item +% First version. +% \end{Version} +% \begin{Version}{2007/06/14 v1.1} +% \item +% Small fixes. +% \end{Version} +% \begin{Version}{2007/09/09 v1.2} +% \item +% Catcode section extended. +% \end{Version} +% \begin{Version}{2010/04/08 v1.3} +% \item +% Ensure \cs{escapechar}=92 (backslash) for infos/warnings/errors. +% \end{Version} +% \begin{Version}{2016/05/16 v1.4} +% \item +% Documentation updates. +% \end{Version} +% \begin{Version}{2019/12/03 v1.5} +% \item +% Documentation updates. +% \end{Version} +% \end{History} +% +% \PrintIndex +% +% \Finale +\endinput diff --git a/macros/latex/contrib/infwarerr/infwarerr.pdf b/macros/latex/contrib/infwarerr/infwarerr.pdf new file mode 100644 index 0000000000..6224227347 Binary files /dev/null and b/macros/latex/contrib/infwarerr/infwarerr.pdf differ diff --git a/macros/latex/contrib/letltxmacro/README.md b/macros/latex/contrib/letltxmacro/README.md new file mode 100644 index 0000000000..424339a06e --- /dev/null +++ b/macros/latex/contrib/letltxmacro/README.md @@ -0,0 +1,12 @@ +# letltxmacro + +letltxmacro package for LaTeX + + +TeX's \let assignment does not work for LaTeX macros +with optional arguments or for macros that are defined +as robust macros by \DeclareRobustCommand. This package +defines \LetLtxMacro that also takes care of the involved +internal macros. + + diff --git a/macros/latex/contrib/letltxmacro/letltxmacro.dtx b/macros/latex/contrib/letltxmacro/letltxmacro.dtx new file mode 100644 index 0000000000..76cb23cd9f --- /dev/null +++ b/macros/latex/contrib/letltxmacro/letltxmacro.dtx @@ -0,0 +1,825 @@ +% \iffalse meta-comment +% +% File: letltxmacro.dtx +% Version: 2019/12/03 v1.6 +% Info: Let assignment for LaTeX macros +% +% Copyright (C) +% 2008, 2010 Heiko Oberdiek +% 2016-2019 Oberdiek Package Support Group +% https://github.com/ho-tex/letltxmacro/issues +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3c of this license or (at your option) any later +% version. This version of this license is in +% https://www.latex-project.org/lppl/lppl-1-3c.txt +% and the latest version of this license is in +% https://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 Maintainers of this work are +% Heiko Oberdiek and the Oberdiek Package Support Group +% https://github.com/ho-tex/letltxmacro/issues +% +% This work consists of the main source file letltxmacro.dtx +% and the derived files +% letltxmacro.sty, letltxmacro.pdf, letltxmacro.ins, letltxmacro.drv, +% letltxmacro-showcases.tex, letltxmacro-test1.tex, +% letltxmacro-test2.tex. +% +% Distribution: +% CTAN:macros/latex/contrib/letltxmacro/letltxmacro.dtx +% CTAN:macros/latex/contrib/letltxmacro/letltxmacro.pdf +% +% Unpacking: +% (a) If letltxmacro.ins is present: +% tex letltxmacro.ins +% (b) Without letltxmacro.ins: +% tex letltxmacro.dtx +% (c) If you insist on using LaTeX +% latex \let\install=y\input{letltxmacro.dtx} +% (quote the arguments according to the demands of your shell) +% +% Documentation: +% (a) If letltxmacro.drv is present: +% latex letltxmacro.drv +% (b) Without letltxmacro.drv: +% latex letltxmacro.dtx; ... +% The class ltxdoc loads the configuration file ltxdoc.cfg +% if available. Here you can specify further options, e.g. +% use A4 as paper format: +% \PassOptionsToClass{a4paper}{article} +% +% Programm calls to get the documentation (example): +% pdflatex letltxmacro.dtx +% makeindex -s gind.ist letltxmacro.idx +% pdflatex letltxmacro.dtx +% makeindex -s gind.ist letltxmacro.idx +% pdflatex letltxmacro.dtx +% +% Installation: +% TDS:tex/latex/letltxmacro/letltxmacro.sty +% TDS:doc/latex/letltxmacro/letltxmacro.pdf +% TDS:doc/latex/letltxmacro/letltxmacro-showcases.tex +% TDS:source/latex/letltxmacro/letltxmacro.dtx +% +%<*ignore> +\begingroup + \catcode123=1 % + \catcode125=2 % + \def\x{LaTeX2e}% +\expandafter\endgroup +\ifcase 0\ifx\install y1\fi\expandafter + \ifx\csname processbatchFile\endcsname\relax\else1\fi + \ifx\fmtname\x\else 1\fi\relax +\else\csname fi\endcsname +% +%<*install> +\input docstrip.tex +\Msg{************************************************************************} +\Msg{* Installation} +\Msg{* Package: letltxmacro 2019/12/03 v1.6 Let assignment for LaTeX macros (HO)} +\Msg{************************************************************************} + +\keepsilent +\askforoverwritefalse + +\let\MetaPrefix\relax +\preamble + +This is a generated file. + +Project: letltxmacro +Version: 2019/12/03 v1.6 + +Copyright (C) + 2008, 2010 Heiko Oberdiek + 2016-2019 Oberdiek Package Support Group + +This work may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either +version 1.3c of this license or (at your option) any later +version. This version of this license is in + https://www.latex-project.org/lppl/lppl-1-3c.txt +and the latest version of this license is in + https://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 Maintainers of this work are +Heiko Oberdiek and the Oberdiek Package Support Group +https://github.com/ho-tex/letltxmacro/issues + + +This work consists of the main source file letltxmacro.dtx +and the derived files + letltxmacro.sty, letltxmacro.pdf, letltxmacro.ins, letltxmacro.drv, + letltxmacro-showcases.tex, letltxmacro-test1.tex, + letltxmacro-test2.tex. + +\endpreamble +\let\MetaPrefix\DoubleperCent + +\generate{% + \file{letltxmacro.ins}{\from{letltxmacro.dtx}{install}}% + \file{letltxmacro.drv}{\from{letltxmacro.dtx}{driver}}% + \usedir{tex/latex/letltxmacro}% + \file{letltxmacro.sty}{\from{letltxmacro.dtx}{package}}% + \usedir{doc/latex/letltxmacro}% + \file{letltxmacro-showcases.tex}{\from{letltxmacro.dtx}{showcases}}% +% \usedir{doc/latex/letltxmacro/test}% +% \file{letltxmacro-test1.tex}{\from{letltxmacro.dtx}{test1}}% +% \file{letltxmacro-test2.tex}{\from{letltxmacro.dtx}{test2}}% +} + +\catcode32=13\relax% active space +\let =\space% +\Msg{************************************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move the following} +\Msg{* file into a directory searched by TeX:} +\Msg{*} +\Msg{* letltxmacro.sty} +\Msg{*} +\Msg{* To produce the documentation run the file `letltxmacro.drv'} +\Msg{* through LaTeX.} +\Msg{*} +\Msg{* Happy TeXing!} +\Msg{*} +\Msg{************************************************************************} + +\endbatchfile +% +%<*ignore> +\fi +% +%<*driver> +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{letltxmacro.drv}% + [2019/12/03 v1.6 Let assignment for LaTeX macros (HO)]% +\documentclass{ltxdoc} +\usepackage{holtxdoc}[2011/11/22] +\begin{document} + \DocInput{letltxmacro.dtx}% +\end{document} +% +% \fi +% +% +% +% \GetFileInfo{letltxmacro.drv} +% +% \title{The \xpackage{letltxmacro} package} +% \date{2019/12/03 v1.6} +% \author{Heiko Oberdiek\thanks +% {Please report any issues at \url{https://github.com/ho-tex/letltxmacro/issues}}} +% +% \maketitle +% +% \begin{abstract} +% \TeX's \cs{let} assignment does not work for \LaTeX\ macros +% with optional arguments or for macros that are defined +% as robust macros by \cs{DeclareRobustCommand}. This package +% defines \cs{LetLtxMacro} that also takes care of the involved +% internal macros. +% \end{abstract} +% +% \tableofcontents +% +% \section{Documentation} +% +% If someone wants to redefine a macro with using the old +% meaning, then one method is \TeX's command \cs{let}: +%\begin{quote} +%\begin{verbatim} +%\newcommand{\Macro}{\typeout{Test Macro}} +%\let\SavedMacro=\Macro +%\renewcommand{\Macro}{% +% \typeout{Begin}% +% \SavedMacro +% \typeout{End}% +%} +%\end{verbatim} +%\end{quote} +% However, this method fails, if \cs{Macro} is defined +% by \cs{DeclareRobustCommand} and/or has an optional argument. +% In both cases \LaTeX\ defines an additional internal macro +% that is forgotten in the simple \cs{let} assignment of +% the example above. +% +% \begin{declcs}{LetLtxMacro} \M{new macro} \M{old macro} +% \end{declcs} +% Macro \cs{LetLtxMacro} behaves similar to \TeX's \cs{let} +% assignment, but it takes care of macros that are +% defined by \cs{DeclareRobustCommand} and/or have optional +% arguments. Example: +%\begin{quote} +%\begin{verbatim} +%\DeclareRobustCommand{\Macro}[1][default]{...} +%\LetLtxMacro{\SavedMacro}{\Macro} +%\end{verbatim} +%\end{quote} +% Then macro \cs{SavedMacro} only uses internal macro names +% that are derived from \cs{SavedMacro}'s macro name. Macro \cs{Macro} +% can now be redefined without affecting \cs{SavedMacro}. +% +% \begin{declcs}{GlobalLetLtxMacro} \M{new macro} \M{old macro} +% \end{declcs} +% Like \cs{LetLtxMacro}, but the \meta{new macro} is defined globally. +% Since version 2019/12/03~v1.4. +% +% \subsection{Supported macro definition commands} +% +% \begin{quote} +% \begin{tabular}{@{}ll@{}} +% \cs{newcommand}, \cs{renewcommand} & latex/base\\ +% \cs{newenvironment}, \cs{renewenvironment} & latex/base\\ +% \cs{DeclareRobustCommand}& latex/base\\ +% \cs{newrobustcmd}, \cs{renewrobustcmd} & etoolbox\\ +% \cs{robustify} & etoolbox 2008/06/22 v1.6\\ +% \end{tabular} +% \end{quote} +% +% \StopEventually{ +% } +% +% \section{Implementation} +% +% \subsection{Show cases} +% +% \subsubsection{\xfile{letltxmacro-showcases.tex}} +% +% \begin{macrocode} +%<*showcases> +\NeedsTeXFormat{LaTeX2e} +\makeatletter +% \end{macrocode} +% \begin{macro}{\Line} +% The result is displayed by macro \cs{Line}. The percent symbol +% at line start allows easy grepping and inserting into the DTX +% file. +% \begin{macrocode} +\newcommand*{\Line}[1]{% + \typeout{\@percentchar#1}% +} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +\newcommand*{\ShowCmdName}[1]{% + \@ifundefined{#1}{}{% + \Line{% + \space\space(\expandafter\string\csname#1\endcsname) = % + (\expandafter\meaning\csname#1\endcsname)% + }% + }% +} +\newcommand*{\ShowCmds}[1]{% + \ShowCmdName{#1}% + \ShowCmdName{#1 }% + \ShowCmdName{\\#1}% + \ShowCmdName{\\#1 }% +} +\let\\\@backslashchar +% \end{macrocode} +% \begin{macro}{\ShowDef} +% \begin{macrocode} +\newcommand*{\ShowDef}[2]{% + \begingroup + \Line{}% + \newcommand*{\DefString}{#2}% + \@onelevel@sanitize\DefString + \Line{\DefString}% + #2% + \ShowCmds{#1}% + \endgroup +} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +\typeout{} +\Line{* LaTeX definitions:} +\ShowDef{cmd}{% + \newcommand{\cmd}[2][default]{}% +} +\ShowDef{cmd}{% + \DeclareRobustCommand{\cmd}{}% +} +\ShowDef{cmd}{% + \DeclareRobustCommand{\cmd}[2][default]{}% +} +\typeout{} +% \end{macrocode} +% The minimal version of package \xpackage{etoolbox} is 2008/06/12 v1.6a +% because it fixes \cs{robustify}. +% \begin{macrocode} +\RequirePackage{etoolbox}[2008/06/12]% +\Line{} +\Line{* etoolbox's robust definitions:} +\ShowDef{cmd}{% + \newrobustcmd{\cmd}{}% +} +\ShowDef{cmd}{% + \newrobustcmd{\cmd}[2][default]{}% +} +\Line{} +\Line{* etoolbox's \string\robustify:} +\ShowDef{cmd}{% + \newcommand{\cmd}[2][default]{} % + \robustify{\cmd}% +} +\ShowDef{cmd}{% + \DeclareRobustCommand{\cmd}{} % + \robustify{\cmd}% +} +\ShowDef{cmd}{% + \DeclareRobustCommand{\cmd}[2][default]{} % + \robustify{\cmd}% +} +\typeout{} +\@@end +% +% \end{macrocode} +% +% \subsubsection{Result} +% +% \begingroup +% \makeatletter +% \let\org@verbatim\@verbatim +% \def\@verbatim{^^A +% \org@verbatim +% \catcode`\~=\active +% }^^A +% \let~\textvisiblespace +%\begin{verbatim} +%* LaTeX definitions: +% +%\newcommand {\cmd }[2][default]{} +% (\cmd) = (macro:->\@protected@testopt \cmd \\cmd {default}) +% (\\cmd) = (\long macro:[#1]#2->) +% +%\DeclareRobustCommand {\cmd }{} +% (\cmd) = (macro:->\protect \cmd~ ) +% (\cmd~) = (\long macro:->) +% +%\DeclareRobustCommand {\cmd }[2][default]{} +% (\cmd) = (macro:->\protect \cmd~ ) +% (\cmd~) = (macro:->\@protected@testopt \cmd~ \\cmd~ {default}) +% (\\cmd~) = (\long macro:[#1]#2->) +% +%* etoolbox's robust definitions: +% +%\newrobustcmd {\cmd }{} +% (\cmd) = (\protected\long macro:->) +% +%\newrobustcmd {\cmd }[2][default]{} +% (\cmd) = (\protected macro:->\@testopt \\cmd {default}) +% (\\cmd) = (\long macro:[#1]#2->) +% +%* etoolbox's \robustify: +% +%\newcommand {\cmd }[2][default]{} \robustify {\cmd } +% (\cmd) = (\protected macro:->\@protected@testopt \cmd \\cmd {default}) +% (\\cmd) = (\long macro:[#1]#2->) +% +%\DeclareRobustCommand {\cmd }{} \robustify {\cmd } +% (\cmd) = (\protected macro:->) +% +%\DeclareRobustCommand {\cmd }[2][default]{} \robustify {\cmd } +% (\cmd) = (\protected macro:->\@protected@testopt \cmd~ \\cmd~ {default}) +% (\cmd~) = (macro:->\@protected@testopt \cmd~ \\cmd~ {default}) +% (\\cmd~) = (\long macro:[#1]#2->) +%\end{verbatim} +% \endgroup +% +% \subsection{Package} +% +% \begin{macrocode} +%<*package> +% \end{macrocode} +% +% \subsubsection{Catcodes and identification} +% +% \begin{macrocode} +\begingroup\catcode61\catcode48\catcode32=10\relax% + \catcode13=5 % ^^M + \endlinechar=13 % + \catcode123=1 % { + \catcode125=2 % } + \catcode64=11 % @ + \def\x{\endgroup + \expandafter\edef\csname llm@AtEnd\endcsname{% + \endlinechar=\the\endlinechar\relax + \catcode13=\the\catcode13\relax + \catcode32=\the\catcode32\relax + \catcode35=\the\catcode35\relax + \catcode61=\the\catcode61\relax + \catcode64=\the\catcode64\relax + \catcode123=\the\catcode123\relax + \catcode125=\the\catcode125\relax + }% + }% +\x\catcode61\catcode48\catcode32=10\relax% +\catcode13=5 % ^^M +\endlinechar=13 % +\catcode35=6 % # +\catcode64=11 % @ +\catcode123=1 % { +\catcode125=2 % } +\def\TMP@EnsureCode#1#2{% + \edef\llm@AtEnd{% + \llm@AtEnd + \catcode#1=\the\catcode#1\relax + }% + \catcode#1=#2\relax +} +\TMP@EnsureCode{40}{12}% ( +\TMP@EnsureCode{41}{12}% ) +\TMP@EnsureCode{42}{12}% * +\TMP@EnsureCode{45}{12}% - +\TMP@EnsureCode{46}{12}% . +\TMP@EnsureCode{47}{12}% / +\TMP@EnsureCode{58}{12}% : +\TMP@EnsureCode{62}{12}% > +\TMP@EnsureCode{91}{12}% [ +\TMP@EnsureCode{93}{12}% ] +\edef\llm@AtEnd{% + \llm@AtEnd + \escapechar\the\escapechar\relax + \noexpand\endinput +} +\escapechar=92 % `\\ +% \end{macrocode} +% +% Package identification. +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{letltxmacro}% + [2019/12/03 v1.6 Let assignment for LaTeX macros (HO)] +% \end{macrocode} +% +% \subsubsection{Main macros} +% +% \begin{macro}{\LetLtxMacro} +% \begin{macrocode} +\newcommand*{\LetLtxMacro}{% + \llm@ModeLetLtxMacro{}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\GlobalLetLtxMacro} +% \begin{macrocode} +\newcommand*{\GlobalLetLtxMacro}{% + \llm@ModeLetLtxMacro\global +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\llm@ModeLetLtxMacro} +% \begin{macrocode} +\newcommand*{\llm@ModeLetLtxMacro}[3]{% + \edef\llm@escapechar{\the\escapechar}% + \escapechar=-1 % + \edef\reserved@a{% + \noexpand\protect + \expandafter\noexpand + \csname\string#3 \endcsname + }% + \ifx\reserved@a#3\relax + #1\edef#2{% + \noexpand\protect + \expandafter\noexpand + \csname\string#2 \endcsname + }% + #1\expandafter\let + \csname\string#2 \expandafter\endcsname + \csname\string#3 \endcsname + \expandafter\llm@LetLtxMacro + \csname\string#2 \expandafter\endcsname + \csname\string#3 \endcsname{#1}% + \else + \llm@LetLtxMacro{#2}{#3}{#1}% + \fi + \escapechar=\llm@escapechar\relax +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\llm@LetLtxMacro} +% \begin{macrocode} +\def\llm@LetLtxMacro#1#2#3{% + \escapechar=92 % + \expandafter\llm@CheckParams\meaning#2:->\@nil{% + \begingroup + \def\@protected@testopt{% + \expandafter\@testopt\@gobble + }% + \def\@testopt##1##2{% + \toks@={##2}% + }% + \let\llm@testopt\@empty + \edef\x{% + \noexpand\@protected@testopt + \noexpand#2% + \expandafter\noexpand\csname\string#2\endcsname + }% + \expandafter\expandafter\expandafter\def + \expandafter\expandafter\expandafter\y + \expandafter\expandafter\expandafter{% + \expandafter\llm@CarThree#2{}{}{}\llm@nil + }% + \ifx\x\y + #2% + \def\llm@testopt{% + \noexpand\@protected@testopt + \noexpand#1% + }% + \else + \edef\x{% + \noexpand\@testopt + \expandafter\noexpand + \csname\string#2\endcsname + }% + \expandafter\expandafter\expandafter\def + \expandafter\expandafter\expandafter\y + \expandafter\expandafter\expandafter{% + \expandafter\llm@CarTwo#2{}{}\llm@nil + }% + \ifx\x\y + #2% + \def\llm@testopt{% + \noexpand\@testopt + }% + \fi + \fi + \ifx\llm@testopt\@empty + \else + \llm@protected\xdef\llm@GlobalTemp{% + \llm@testopt + \expandafter\noexpand + \csname\string#1\endcsname + {\the\toks@}% + }% + \fi + \expandafter\endgroup\ifx\llm@testopt\@empty + #3\let#1=#2\relax + \else + #3\let#1=\llm@GlobalTemp + #3\expandafter\let + \csname\string#1\expandafter\endcsname + \csname\string#2\endcsname + \fi + }{% + #3\let#1=#2\relax + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\llm@CheckParams} +% \begin{macrocode} +\def\llm@CheckParams#1:->#2\@nil{% + \begingroup + \def\x{#1}% + \ifx\x\llm@macro + \endgroup + \def\llm@protected{}% + \expandafter\@firstoftwo + \else + \ifx\x\llm@protectedmacro + \endgroup + \def\llm@protected{\protected}% + \expandafter\expandafter\expandafter\@firstoftwo + \else + \endgroup + \expandafter\expandafter\expandafter\@secondoftwo + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\llm@macro} +% \begin{macrocode} +\def\llm@macro{macro} +\@onelevel@sanitize\llm@macro +% \end{macrocode} +% \end{macro} +% \begin{macro}{\llm@protectedmacro} +% \begin{macrocode} +\def\llm@protectedmacro{\protected macro} +\@onelevel@sanitize\llm@protectedmacro +% \end{macrocode} +% \end{macro} +% \begin{macro}{\llm@CarThree} +% \begin{macrocode} +\def\llm@CarThree#1#2#3#4\llm@nil{#1#2#3}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\llm@CarTwo} +% \begin{macrocode} +\def\llm@CarTwo#1#2#3\llm@nil{#1#2}% +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\llm@AtEnd% +% +% \end{macrocode} +% \section{Installation} +% +% \subsection{Download} +% +% \paragraph{Package.} This package is available on +% CTAN\footnote{\CTANpkg{letltxmacro}}: +% \begin{description} +% \item[\CTAN{macros/latex/contrib/letltxmacro/letltxmacro.dtx}] The source file. +% \item[\CTAN{macros/latex/contrib/letltxmacro/letltxmacro.pdf}] Documentation. +% \end{description} +% +% +% \paragraph{Bundle.} All the packages of the bundle `letltxmacro' +% are also available in a TDS compliant ZIP archive. There +% the packages are already unpacked and the documentation files +% are generated. The files and directories obey the TDS standard. +% \begin{description} +% \item[\CTANinstall{install/macros/latex/contrib/letltxmacro.tds.zip}] +% \end{description} +% \emph{TDS} refers to the standard ``A Directory Structure +% for \TeX\ Files'' (\CTANpkg{tds}). Directories +% with \xfile{texmf} in their name are usually organized this way. +% +% \subsection{Bundle installation} +% +% \paragraph{Unpacking.} Unpack the \xfile{letltxmacro.tds.zip} in the +% TDS tree (also known as \xfile{texmf} tree) of your choice. +% Example (linux): +% \begin{quote} +% |unzip letltxmacro.tds.zip -d ~/texmf| +% \end{quote} +% +% \subsection{Package installation} +% +% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting +% \docstrip\ archive. The files are extracted by running the +% \xfile{.dtx} through \plainTeX: +% \begin{quote} +% \verb|tex letltxmacro.dtx| +% \end{quote} +% +% \paragraph{TDS.} Now the different files must be moved into +% the different directories in your installation TDS tree +% (also known as \xfile{texmf} tree): +% \begin{quote} +% \def\t{^^A +% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} +% letltxmacro.sty & tex/latex/letltxmacro/letltxmacro.sty\\ +% letltxmacro.pdf & doc/latex/letltxmacro/letltxmacro.pdf\\ +% letltxmacro-showcases.tex & doc/latex/letltxmacro/letltxmacro-showcases.tex\\ +% letltxmacro.dtx & source/latex/letltxmacro/letltxmacro.dtx\\ +% \end{tabular}^^A +% }^^A +% \sbox0{\t}^^A +% \ifdim\wd0>\linewidth +% \begingroup +% \advance\linewidth by\leftmargin +% \advance\linewidth by\rightmargin +% \edef\x{\endgroup +% \def\noexpand\lw{\the\linewidth}^^A +% }\x +% \def\lwbox{^^A +% \leavevmode +% \hbox to \linewidth{^^A +% \kern-\leftmargin\relax +% \hss +% \usebox0 +% \hss +% \kern-\rightmargin\relax +% }^^A +% }^^A +% \ifdim\wd0>\lw +% \sbox0{\small\t}^^A +% \ifdim\wd0>\linewidth +% \ifdim\wd0>\lw +% \sbox0{\footnotesize\t}^^A +% \ifdim\wd0>\linewidth +% \ifdim\wd0>\lw +% \sbox0{\scriptsize\t}^^A +% \ifdim\wd0>\linewidth +% \ifdim\wd0>\lw +% \sbox0{\tiny\t}^^A +% \ifdim\wd0>\linewidth +% \lwbox +% \else +% \usebox0 +% \fi +% \else +% \lwbox +% \fi +% \else +% \usebox0 +% \fi +% \else +% \lwbox +% \fi +% \else +% \usebox0 +% \fi +% \else +% \lwbox +% \fi +% \else +% \usebox0 +% \fi +% \else +% \lwbox +% \fi +% \else +% \usebox0 +% \fi +% \end{quote} +% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's +% TDS installing feature, then some files can already be in the right +% place, see the documentation of \docstrip. +% +% \subsection{Refresh file name databases} +% +% If your \TeX~distribution +% (\TeX\,Live, \mikTeX, \dots) relies on file name databases, you must refresh +% these. For example, \TeX\,Live\ users run \verb|texhash| or +% \verb|mktexlsr|. +% +% \subsection{Some details for the interested} +% +% \paragraph{Unpacking with \LaTeX.} +% The \xfile{.dtx} chooses its action depending on the format: +% \begin{description} +% \item[\plainTeX:] Run \docstrip\ and extract the files. +% \item[\LaTeX:] Generate the documentation. +% \end{description} +% If you insist on using \LaTeX\ for \docstrip\ (really, +% \docstrip\ does not need \LaTeX), then inform the autodetect routine +% about your intention: +% \begin{quote} +% \verb|latex \let\install=y\input{letltxmacro.dtx}| +% \end{quote} +% Do not forget to quote the argument according to the demands +% of your shell. +% +% \paragraph{Generating the documentation.} +% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate +% the documentation. The process can be configured by the +% configuration file \xfile{ltxdoc.cfg}. For instance, put this +% line into this file, if you want to have A4 as paper format: +% \begin{quote} +% \verb|\PassOptionsToClass{a4paper}{article}| +% \end{quote} +% An example follows how to generate the +% documentation with pdf\LaTeX: +% \begin{quote} +%\begin{verbatim} +%pdflatex letltxmacro.dtx +%makeindex -s gind.ist letltxmacro.idx +%pdflatex letltxmacro.dtx +%makeindex -s gind.ist letltxmacro.idx +%pdflatex letltxmacro.dtx +%\end{verbatim} +% \end{quote} +% +% \begin{History} +% \begin{Version}{2008/06/09 v1.0} +% \item +% First version. +% \end{Version} +% \begin{Version}{2008/06/12 v1.1} +% \item +% Support for \xpackage{etoolbox}'s \cs{newrobustcmd} added. +% \end{Version} +% \begin{Version}{2008/06/13 v1.2} +% \item +% Support for \xpackage{etoolbox}'s \cs{robustify} added. +% \end{Version} +% \begin{Version}{2008/06/24 v1.3} +% \item +% Test file adapted for etoolbox 2008/06/22 v1.6. +% \end{Version} +% \begin{Version}{2010/09/02 v1.4} +% \item +% \cs{GlobalLetLtxMacro} added. +% \end{Version} +% \begin{Version}{2016/05/16 v1.5} +% \item +% Documentation updates. +% \end{Version} +% \begin{Version}{2019/12/03 v1.6} +% \item +% Documentation updates. +% \end{Version} +% \end{History} +% +% \PrintIndex +% +% \Finale +\endinput diff --git a/macros/latex/contrib/letltxmacro/letltxmacro.pdf b/macros/latex/contrib/letltxmacro/letltxmacro.pdf new file mode 100644 index 0000000000..758a8360dc Binary files /dev/null and b/macros/latex/contrib/letltxmacro/letltxmacro.pdf differ diff --git a/macros/latex/contrib/mleftright/README.md b/macros/latex/contrib/mleftright/README.md new file mode 100644 index 0000000000..d4b097b0ea --- /dev/null +++ b/macros/latex/contrib/mleftright/README.md @@ -0,0 +1,12 @@ +# mleftright + +mleftright package for LaTeX + + +TeX sets subformulas by \left and \right as inner formulas +with additional surrounding spaces in some situations. This package +provides \mleft and \mright that call \left and \right, +but the delimiters will act as normal \mathopen and \mathclose +delimiters without the additional space of an inner formula. + + diff --git a/macros/latex/contrib/mleftright/mleftright.dtx b/macros/latex/contrib/mleftright/mleftright.dtx new file mode 100644 index 0000000000..ec52c6c3b5 --- /dev/null +++ b/macros/latex/contrib/mleftright/mleftright.dtx @@ -0,0 +1,815 @@ +% \iffalse meta-comment +% +% File: mleftright.dtx +% Version: 2019/12/03 v1.2 +% Info: Math left/right delim. as open/close +% +% Copyright (C) +% 2010 Heiko Oberdiek +% 2016-2019 Oberdiek Package Support Group +% https://github.com/ho-tex/mleftright/issues +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3c of this license or (at your option) any later +% version. This version of this license is in +% https://www.latex-project.org/lppl/lppl-1-3c.txt +% and the latest version of this license is in +% https://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 Maintainers of this work are +% Heiko Oberdiek and the Oberdiek Package Support Group +% https://github.com/ho-tex/mleftright/issues +% +% The Base Interpreter refers to any `TeX-Format', +% because some files are installed in TDS:tex/generic//. +% +% This work consists of the main source file mleftright.dtx +% and the derived files +% mleftright.sty, mleftright.pdf, mleftright.ins, mleftright.drv, +% mleftright-test1.tex. +% +% Distribution: +% CTAN:macros/latex/contrib/mleftright/mleftright.dtx +% CTAN:macros/latex/contrib/mleftright/mleftright.pdf +% +% Unpacking: +% (a) If mleftright.ins is present: +% tex mleftright.ins +% (b) Without mleftright.ins: +% tex mleftright.dtx +% (c) If you insist on using LaTeX +% latex \let\install=y\input{mleftright.dtx} +% (quote the arguments according to the demands of your shell) +% +% Documentation: +% (a) If mleftright.drv is present: +% latex mleftright.drv +% (b) Without mleftright.drv: +% latex mleftright.dtx; ... +% The class ltxdoc loads the configuration file ltxdoc.cfg +% if available. Here you can specify further options, e.g. +% use A4 as paper format: +% \PassOptionsToClass{a4paper}{article} +% +% Programm calls to get the documentation (example): +% pdflatex mleftright.dtx +% makeindex -s gind.ist mleftright.idx +% pdflatex mleftright.dtx +% makeindex -s gind.ist mleftright.idx +% pdflatex mleftright.dtx +% +% Installation: +% TDS:tex/generic/mleftright/mleftright.sty +% TDS:doc/latex/mleftright/mleftright.pdf +% TDS:source/latex/mleftright/mleftright.dtx +% +%<*ignore> +\begingroup + \catcode123=1 % + \catcode125=2 % + \def\x{LaTeX2e}% +\expandafter\endgroup +\ifcase 0\ifx\install y1\fi\expandafter + \ifx\csname processbatchFile\endcsname\relax\else1\fi + \ifx\fmtname\x\else 1\fi\relax +\else\csname fi\endcsname +% +%<*install> +\input docstrip.tex +\Msg{************************************************************************} +\Msg{* Installation} +\Msg{* Package: mleftright 2019/12/03 v1.2 Math left/right delim. as open/close (HO)} +\Msg{************************************************************************} + +\keepsilent +\askforoverwritefalse + +\let\MetaPrefix\relax +\preamble + +This is a generated file. + +Project: mleftright +Version: 2019/12/03 v1.2 + +Copyright (C) + 2010 Heiko Oberdiek + 2016-2019 Oberdiek Package Support Group + +This work may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either +version 1.3c of this license or (at your option) any later +version. This version of this license is in + https://www.latex-project.org/lppl/lppl-1-3c.txt +and the latest version of this license is in + https://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 Maintainers of this work are +Heiko Oberdiek and the Oberdiek Package Support Group +https://github.com/ho-tex/mleftright/issues + + +The Base Interpreter refers to any `TeX-Format', +because some files are installed in TDS:tex/generic//. + +This work consists of the main source file mleftright.dtx +and the derived files + mleftright.sty, mleftright.pdf, mleftright.ins, mleftright.drv, + mleftright-test1.tex. + +\endpreamble +\let\MetaPrefix\DoubleperCent + +\generate{% + \file{mleftright.ins}{\from{mleftright.dtx}{install}}% + \file{mleftright.drv}{\from{mleftright.dtx}{driver}}% + \usedir{tex/generic/mleftright}% + \file{mleftright.sty}{\from{mleftright.dtx}{package}}% +% \usedir{doc/latex/mleftright/test}% +% \file{mleftright-test1.tex}{\from{mleftright.dtx}{test1}}% +} + +\catcode32=13\relax% active space +\let =\space% +\Msg{************************************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move the following} +\Msg{* file into a directory searched by TeX:} +\Msg{*} +\Msg{* mleftright.sty} +\Msg{*} +\Msg{* To produce the documentation run the file `mleftright.drv'} +\Msg{* through LaTeX.} +\Msg{*} +\Msg{* Happy TeXing!} +\Msg{*} +\Msg{************************************************************************} + +\endbatchfile +% +%<*ignore> +\fi +% +%<*driver> +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{mleftright.drv}% + [2019/12/03 v1.2 Math left/right delim. as open/close (HO)]% +\documentclass{ltxdoc} +\usepackage{holtxdoc}[2011/11/22] +\usepackage{mleftright}[2019/12/03] +\begin{document} + \DocInput{mleftright.dtx}% +\end{document} +% +% \fi +% +% +% +% \GetFileInfo{mleftright.drv} +% +% \title{The \xpackage{mleftright} package} +% \date{2019/12/03 v1.2} +% \author{Heiko Oberdiek\thanks +% {Please report any issues at \url{https://github.com/ho-tex/mleftright/issues}}} +% +% \maketitle +% +% \begin{abstract} +% \TeX\ sets subformulas by \cs{left} and \cs{right} as inner formulas +% with additional surrounding spaces in some situations. This package +% provides \cs{mleft} and \cs{mright} that call \cs{left} and \cs{right}, +% but the delimiters will act as normal \cs{mathopen} and \cs{mathclose} +% delimiters without the additional space of an inner formula. +% \end{abstract} +% +% \tableofcontents +% +% \section{Documentation} +% +% The package is a result of a thread in the newsgroup \textsf{comp.text.tex} +% with the subject \textit{spacing after \cs{right}\texttt{)} +% and before \cs{left}\texttt{)}} \cite{dave}. +% The problem: \cs{left} and \cs{right} adjust the size of the +% delimiters automatically. However, \TeX\ treats the whole expression +% as inner formula. In some circumstances \TeX\ adds extra space +% before or after an inner formula. +% Example: +% \begin{quote} +% \thinmuskip=1.5\thinmuskip +% \begin{tabular}{@{}l@{\quad$\Rightarrow$\quad}l@{}} +% |$\sin(x^2), x$| +% & $\sin(x^2), x$\\ +% |$\sin\left(x^2\right), x$| +% & $\sin\left(x^2\right), x$\\ +% ^^A \multicolumn{1}{@{}r@{\quad$\Rightarrow$\quad}}{^^A +% ^^A \itshape with exaggerated spacing^^A +% ^^A } +% ^^A & $\thinmuskip=4\thinmuskip +% ^^A \sin\left(x^2\right){,}\mskip.25\thinmuskip x$\\ +% |$\sin\mleft(x^2\mright), x$| +% & $\sin\mleft(x^2\mright), x$\\ +% \end{tabular}\\*[.5ex] +% (\cs{mleft} and \cs{mright} are provided by this package.) +% \end{quote} +% +% In the newsgroup Donald Arseneau answered with clever macros \cite{arseneau}: +% \begin{quote} +%\begin{verbatim} +%\newcommand\lft{\mathopen{}\left} +%\newcommand\rgt{\aftergroup\mathclose\aftergroup{\aftergroup}\right} +%\end{verbatim} +% \end{quote} +% However one problem remains, a following subscript or superscript +% is not applied to the right delimiter but the empty +% \cs{mathclose}. +% Thus Philipp Stephani provided an improvement \cite{stephani}: +%\begin{quote} +%\begin{verbatim} +%\mathopen{} \mathclose{\left\| A^2 \right\|}_2 +%\end{verbatim} +%\end{quote} +% Heiko Oberdiek converted this into macro form \cite{oberdiek}: +%\begin{quote} +%\begin{verbatim} +%\newcommand\lft{\mathopen{}\mathclose\bgroup\left} +%\newcommand\rgt{\aftergroup\egroup\right} +%\end{verbatim} +%\end{quote} +% +% The package uses longer macro names \cs{mleft} and \cs{mright} +% to avoid name clashes. Also it adds some checks for error conditions. +% +% \subsection{Use} +% +% \begin{declcs}{mleft}\meta{delimL} \dots\unkern\ \cs{mright}\meta{delimR} +% \end{declcs} +% Macros \cs{mleft} and \cs{mright} are used in the same way as +% \cs{left} and \cs{right}. Also \cs{middle} can be used inbetween if +% \eTeX\ is present. +% +% \begin{declcs}{mleftright} +% \end{declcs} +% Macro \cs{mleftright} redefines \cs{left} as \cs{mleft} and +% \cs{right} as \cs{mright}. The redefinition is local to the group. +% +% \begin{declcs}{mleftrightrestore} +% \end{declcs} +% Macro \cs{mleftright} restores \cs{left} and \cs{right} with +% the original meaning if they were previously redefined by +% \cs{mleftright} (also locally). +% +% +% \StopEventually{ +% } +% +% \section{Implementation} +% \begin{macrocode} +%<*package> +% \end{macrocode} +% Reload check, especially if the package is not used with \LaTeX. +% \begin{macrocode} +\begingroup\catcode61\catcode48\catcode32=10\relax% + \catcode13=5 % ^^M + \endlinechar=13 % + \catcode35=6 % # + \catcode39=12 % ' + \catcode44=12 % , + \catcode45=12 % - + \catcode46=12 % . + \catcode58=12 % : + \catcode64=11 % @ + \catcode123=1 % { + \catcode125=2 % } + \expandafter\let\expandafter\x\csname ver@mleftright.sty\endcsname + \ifx\x\relax % plain-TeX, first loading + \else + \def\empty{}% + \ifx\x\empty % LaTeX, first loading, + % variable is initialized, but \ProvidesPackage not yet seen + \else + \expandafter\ifx\csname PackageInfo\endcsname\relax + \def\x#1#2{% + \immediate\write-1{Package #1 Info: #2.}% + }% + \else + \def\x#1#2{\PackageInfo{#1}{#2, stopped}}% + \fi + \x{mleftright}{The package is already loaded}% + \aftergroup\endinput + \fi + \fi +\endgroup% +% \end{macrocode} +% Package identification: +% \begin{macrocode} +\begingroup\catcode61\catcode48\catcode32=10\relax% + \catcode13=5 % ^^M + \endlinechar=13 % + \catcode35=6 % # + \catcode39=12 % ' + \catcode40=12 % ( + \catcode41=12 % ) + \catcode44=12 % , + \catcode45=12 % - + \catcode46=12 % . + \catcode47=12 % / + \catcode58=12 % : + \catcode64=11 % @ + \catcode91=12 % [ + \catcode93=12 % ] + \catcode123=1 % { + \catcode125=2 % } + \expandafter\ifx\csname ProvidesPackage\endcsname\relax + \def\x#1#2#3[#4]{\endgroup + \immediate\write-1{Package: #3 #4}% + \xdef#1{#4}% + }% + \else + \def\x#1#2[#3]{\endgroup + #2[{#3}]% + \ifx#1\@undefined + \xdef#1{#3}% + \fi + \ifx#1\relax + \xdef#1{#3}% + \fi + }% + \fi +\expandafter\x\csname ver@mleftright.sty\endcsname +\ProvidesPackage{mleftright}% + [2019/12/03 v1.2 Math left/right delim. as open/close (HO)]% +% \end{macrocode} +% +% \begin{macrocode} +\begingroup\catcode61\catcode48\catcode32=10\relax% + \catcode13=5 % ^^M + \endlinechar=13 % + \catcode123=1 % { + \catcode125=2 % } + \catcode64=11 % @ + \def\x{\endgroup + \expandafter\edef\csname mleftright@AtEnd\endcsname{% + \endlinechar=\the\endlinechar\relax + \catcode13=\the\catcode13\relax + \catcode32=\the\catcode32\relax + \catcode35=\the\catcode35\relax + \catcode61=\the\catcode61\relax + \catcode64=\the\catcode64\relax + \catcode123=\the\catcode123\relax + \catcode125=\the\catcode125\relax + }% + }% +\x\catcode61\catcode48\catcode32=10\relax% +\catcode13=5 % ^^M +\endlinechar=13 % +\catcode35=6 % # +\catcode64=11 % @ +\catcode123=1 % { +\catcode125=2 % } +\def\TMP@EnsureCode#1#2{% + \edef\mleftright@AtEnd{% + \mleftright@AtEnd + \catcode#1=\the\catcode#1\relax + }% + \catcode#1=#2\relax +} +\TMP@EnsureCode{38}{4}% & +\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{60}{12}% < +\TMP@EnsureCode{91}{12}% [ +\TMP@EnsureCode{93}{12}% ] +\edef\mleftright@AtEnd{% + \mleftright@AtEnd + \escapechar\the\escapechar\relax + \noexpand\endinput +} +\escapechar=92 % +% \end{macrocode} +% +% \begin{macrocode} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname RequirePackage\endcsname\relax + \input infwarerr.sty\relax + \input ltxcmds.sty\relax +\else + \RequirePackage{infwarerr}[2010/04/08]% + \RequirePackage{ltxcmds}[2010/04/26]% +\fi +% \end{macrocode} +% +% The original commands \cs{left} and \cs{right} +% are saved and later used in \cs{mleft} and +% \cs{mright} in order to deal with: +% \begin{quote} +%\begin{verbatim} +%\let\left\mleft +%\let\right\mright +%\end{verbatim} +% \end{quote} +% \begin{macro}{\mleftright@OrgLeft} +% \begin{macrocode} +\let\mleftright@OrgLeft\left +% \end{macrocode} +% \end{macro} +% \begin{macro}{\mleftright@OrgRight} +% \begin{macrocode} +\let\mleftright@OrgRight\right +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\mleftright@Def} +% Macro \cs{mleftright@Def} defines a macro as robust macro +% if \eTeX\ or \LaTeX\ is available. +% \begin{macrocode} +\ltx@IfUndefined{protected}{% + \ltx@IfUndefined{DeclareRobustCommand}{% + \def\mleftright@Def{\def}% + }{% + \def\mleftright@Def{\DeclareRobustCommand*}% + }% +}{% + \def\mleftright@Def{\protected\def}% +} +\edef\mleftright@Def#1{% + \noexpand\ltx@IfUndefined{% + \noexpand\expandafter\noexpand\ltx@gobble\noexpand\string#1% + }{% + \expandafter\noexpand\mleftright@Def#1% + }{% + \noexpand\@PackageError{mleftright}{% + Command \noexpand\string#1 already defined% + }\noexpand\@ehd + \noexpand\ltx@gobble + }% +} +% \end{macrocode} +% \end{macro} +% +% In case of \eTeX\ the group status after the left symbol +% is saved and later checked at the beginning of \cs{mright}. +% \begin{macrocode} +\ltx@IfUndefined{currentgrouplevel}{% + \catcode38=14 % & = comment +}{% + \catcode38=9 % & = ignore +} +% \end{macrocode} +% +% \begin{macro}{\mleftright@GroupLevel} +% \begin{macrocode} +& \def\mleftright@GroupLevel{-1}% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\mleftright@WrongGroup} +% \begin{macrocode} +& \def\mleftright@WrongGroup#1(#2){% +& \ifnum\mleftright@GroupLevel<\ltx@zero +& \@PackageError{mleftright}{% +& Missing previous \string\mleft +& }\@ehc +& \else +& \@PackageError{mleftright}{% +& Unexpected group status for \string\mright% +& \ifnum\mleftright@GroupLevel=#1 % +& \else +& .\MessageBreak +& Group level is #1, % +& expected is \mleftright@GroupLevel +& \fi +& \ifnum16=#2 % +& \else +& .\MessageBreak +& Group type is #2 (% +& \ifcase#2 % +& bottom level% +& \expandafter\expandafter\expandafter\ltx@gobblefour +& \expandafter\ltx@gobbletwo +& \or simple% +& \or hbox% +& \or adjusted hbox% +& \or vbox% +& \or vtop% +& \or align% +& \or no align% +& \or output% +& \or math% +& \or disc% +& \or insert% +& \or vcenter% +& \or math choice% +& \or semi simple% +& \or math shift% +& \or math left% +& \else +& unknown% +& \fi +& \space group),\MessageBreak +& expected is 16 (math left group)% +& \fi +& }\@ehd +& \fi +& }% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\mleft} +% \begin{macrocode} +\mleftright@Def\mleft{% + \mathopen{}\mathclose\bgroup +& \edef\mleftright@GroupLevel{\the\numexpr\the\currentgrouplevel+1}% + \mleftright@OrgLeft +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\mright} +% \begin{macrocode} +\mleftright@Def\mright{% +& \ifnum\mleftright@GroupLevel=\currentgrouplevel +& \ifnum16=\currentgrouptype + \aftergroup\egroup +& \else +& \expandafter\mleftright@WrongGroup +& \the\expandafter\currentgrouplevel +& \expandafter(\the\currentgrouptype)% +& \fi +& \else +& \expandafter\mleftright@WrongGroup +& \the\expandafter\currentgrouplevel +& \expandafter(\the\currentgrouptype)% +& \fi + \mleftright@OrgRight +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\mleftright} +% \begin{macrocode} +\mleftright@Def\mleftright{% + \let\left\mleft + \let\right\mright +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\mleftrightrestore} +% \begin{macrocode} +\mleftright@Def\mleftrightrestore{% + \ifx\left\mleft + \let\left\mleftright@OrgLeft + \fi + \ifx\right\mright + \let\right\mleftright@OrgRight + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\mleftright@AtEnd% +% +% \end{macrocode} +%% \section{Installation} +% +% \subsection{Download} +% +% \paragraph{Package.} This package is available on +% CTAN\footnote{\CTANpkg{mleftright}}: +% \begin{description} +% \item[\CTAN{macros/latex/contrib/mleftright/mleftright.dtx}] The source file. +% \item[\CTAN{macros/latex/contrib/mleftright/mleftright.pdf}] Documentation. +% \end{description} +% +% +% \paragraph{Bundle.} All the packages of the bundle `mleftright' +% are also available in a TDS compliant ZIP archive. There +% the packages are already unpacked and the documentation files +% are generated. The files and directories obey the TDS standard. +% \begin{description} +% \item[\CTANinstall{install/macros/latex/contrib/mleftright.tds.zip}] +% \end{description} +% \emph{TDS} refers to the standard ``A Directory Structure +% for \TeX\ Files'' (\CTANpkg{tds}). Directories +% with \xfile{texmf} in their name are usually organized this way. +% +% \subsection{Bundle installation} +% +% \paragraph{Unpacking.} Unpack the \xfile{mleftright.tds.zip} in the +% TDS tree (also known as \xfile{texmf} tree) of your choice. +% Example (linux): +% \begin{quote} +% |unzip mleftright.tds.zip -d ~/texmf| +% \end{quote} +% +% \subsection{Package installation} +% +% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting +% \docstrip\ archive. The files are extracted by running the +% \xfile{.dtx} through \plainTeX: +% \begin{quote} +% \verb|tex mleftright.dtx| +% \end{quote} +% +% \paragraph{TDS.} Now the different files must be moved into +% the different directories in your installation TDS tree +% (also known as \xfile{texmf} tree): +% \begin{quote} +% \def\t{^^A +% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} +% mleftright.sty & tex/generic/mleftright/mleftright.sty\\ +% mleftright.pdf & doc/latex/mleftright/mleftright.pdf\\ +% mleftright.dtx & source/latex/mleftright/mleftright.dtx\\ +% \end{tabular}^^A +% }^^A +% \sbox0{\t}^^A +% \ifdim\wd0>\linewidth +% \begingroup +% \advance\linewidth by\leftmargin +% \advance\linewidth by\rightmargin +% \edef\x{\endgroup +% \def\noexpand\lw{\the\linewidth}^^A +% }\x +% \def\lwbox{^^A +% \leavevmode +% \hbox to \linewidth{^^A +% \kern-\leftmargin\relax +% \hss +% \usebox0 +% \hss +% \kern-\rightmargin\relax +% }^^A +% }^^A +% \ifdim\wd0>\lw +% \sbox0{\small\t}^^A +% \ifdim\wd0>\linewidth +% \ifdim\wd0>\lw +% \sbox0{\footnotesize\t}^^A +% \ifdim\wd0>\linewidth +% \ifdim\wd0>\lw +% \sbox0{\scriptsize\t}^^A +% \ifdim\wd0>\linewidth +% \ifdim\wd0>\lw +% \sbox0{\tiny\t}^^A +% \ifdim\wd0>\linewidth +% \lwbox +% \else +% \usebox0 +% \fi +% \else +% \lwbox +% \fi +% \else +% \usebox0 +% \fi +% \else +% \lwbox +% \fi +% \else +% \usebox0 +% \fi +% \else +% \lwbox +% \fi +% \else +% \usebox0 +% \fi +% \else +% \lwbox +% \fi +% \else +% \usebox0 +% \fi +% \end{quote} +% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's +% TDS installing feature, then some files can already be in the right +% place, see the documentation of \docstrip. +% +% \subsection{Refresh file name databases} +% +% If your \TeX~distribution +% (\TeX\,Live, \mikTeX, \dots) relies on file name databases, you must refresh +% these. For example, \TeX\,Live\ users run \verb|texhash| or +% \verb|mktexlsr|. +% +% \subsection{Some details for the interested} +% +% \paragraph{Unpacking with \LaTeX.} +% The \xfile{.dtx} chooses its action depending on the format: +% \begin{description} +% \item[\plainTeX:] Run \docstrip\ and extract the files. +% \item[\LaTeX:] Generate the documentation. +% \end{description} +% If you insist on using \LaTeX\ for \docstrip\ (really, +% \docstrip\ does not need \LaTeX), then inform the autodetect routine +% about your intention: +% \begin{quote} +% \verb|latex \let\install=y\input{mleftright.dtx}| +% \end{quote} +% Do not forget to quote the argument according to the demands +% of your shell. +% +% \paragraph{Generating the documentation.} +% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate +% the documentation. The process can be configured by the +% configuration file \xfile{ltxdoc.cfg}. For instance, put this +% line into this file, if you want to have A4 as paper format: +% \begin{quote} +% \verb|\PassOptionsToClass{a4paper}{article}| +% \end{quote} +% An example follows how to generate the +% documentation with pdf\LaTeX: +% \begin{quote} +%\begin{verbatim} +%pdflatex mleftright.dtx +%makeindex -s gind.ist mleftright.idx +%pdflatex mleftright.dtx +%makeindex -s gind.ist mleftright.idx +%pdflatex mleftright.dtx +%\end{verbatim} +% \end{quote} +% +% \section{Acknowledgement} +% +% \begin{description} +% \item[Donald Arsenau:] +% He provided the main trick and the first macros. +% \item[Philipp Stephani:] +% He solved the subscript problem. +% \end{description} +% +% \begin{thebibliography}{9} +% \raggedright +% \bibitem{dave} +% Dave94705, +% \textit{spacing after \cs{right}\texttt{)} and before \cs{left}\texttt{)}}, +% newsgroup comp.text.tex, +% Message-ID: \texttt{\small 5d264909-7c3d-4c9d-9b22-434178b2bf90@g21g2000prn.googlegroups.com}, +% 2010-08-12. +% \newblock +% {\small\url{https://groups.google.com/group/comp.text.tex/msg/e5b6833da7dc29bf}} +% +% \bibitem{arseneau} +% Donald Arseneau, +% \textit{Re: spacing after \cs{right}\texttt) and before \cs{left}\texttt)}, +% newsgroup comp.text.tex, +% Message-ID: \texttt{\small yfivd6svl8y.fsf@mutant.triumf.ca}, +% 2010-08-30. +% \newblock +% {\small\url{https://groups.google.com/group/comp.text.tex/msg/e0b2e4386e5d04e4}} +% +% \bibitem{stephani} +% Philipp Stephani, +% \textit{Re: spacing after \cs{right}\texttt) and before \cs{left}\texttt)}, +% newsgroup comp.text.tex, +% Message-ID: \texttt{\small 4c8c8c1e\$0\$6981\$9b4e6d93@newsspool4.arcor-online.net}, +% 2010-09-12. +% \newblock +% {\small\url{https://groups.google.com/group/comp.text.tex/msg/87ac1f61321de3ef}} +% +% \bibitem{oberdiek} +% Heiko Oberdiek, +% \textit{Re: spacing after \cs{right}\texttt) and before \cs{left}\texttt)}, +% newsgroup comp.text.tex, +% Message-ID: \texttt{\small i6jcc2\$8of\$1@news.eternal-september.org}, +% 2010-09-12. +% \newblock +% {\small\url{https://groups.google.com/group/comp.text.tex/msg/257aa6119bef878b}} +% +% \end{thebibliography} +% +% \begin{History} +% \begin{Version}{2010/09/25 v1.0} +% \item +% The first version. +% \end{Version} +% \begin{Version}{2016/05/16 v1.1} +% \item +% Documentation updates. +% \end{Version} +% \begin{Version}{2019/12/03 v1.2} +% \item +% Documentation updates. +% \end{Version} +% \end{History} +% +% \PrintIndex +% +% \Finale +\endinput diff --git a/macros/latex/contrib/mleftright/mleftright.pdf b/macros/latex/contrib/mleftright/mleftright.pdf new file mode 100644 index 0000000000..1f44fb88d2 Binary files /dev/null and b/macros/latex/contrib/mleftright/mleftright.pdf differ diff --git a/macros/latex/contrib/oberdiek/README.txt b/macros/latex/contrib/oberdiek/README.txt index 2b0a822793..238e572c18 100644 --- a/macros/latex/contrib/oberdiek/README.txt +++ b/macros/latex/contrib/oberdiek/README.txt @@ -1,4 +1,4 @@ -README 2019/11/29 +README 2019/12/03 This file describes the directory CTAN:macros/latex/contrib/oberdiek/ diff --git a/macros/latex/contrib/oberdiek/accsupp.dtx b/macros/latex/contrib/oberdiek/accsupp.dtx index 722b314284..5264aed3e2 100644 --- a/macros/latex/contrib/oberdiek/accsupp.dtx +++ b/macros/latex/contrib/oberdiek/accsupp.dtx @@ -1,7 +1,7 @@ % \iffalse meta-comment % % File: accsupp.dtx -% Version: 2018/01/30 v0.5 +% Version: 2018/03/28 v0.5 % Info: Accessibility support by marked content % % Copyright (C) @@ -72,7 +72,6 @@ % TDS:doc/latex/oberdiek/accsupp.pdf % TDS:doc/latex/oberdiek/accsupp-example1.tex % TDS:doc/latex/oberdiek/accsupp-example2.tex -% TDS:doc/latex/oberdiek/test/accsupp-test1.tex % TDS:source/latex/oberdiek/accsupp.dtx % %<*ignore> @@ -150,10 +149,6 @@ and the derived files \file{accsupp-example2.tex}{\from{accsupp.dtx}{example2}}% % \usedir{doc/latex/oberdiek/test}% % \file{accsupp-test1.tex}{\from{accsupp.dtx}{test1}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{accsupp.xml}{\from{accsupp.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -191,21 +186,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{accsupp.drv} % @@ -900,63 +880,6 @@ ed as % \begin{macrocode} % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\NeedsTeXFormat{LaTeX2e} -\documentclass{minimal} -\makeatletter -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@\@ne -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@\@ne - \repeat -} -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{127}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\{=1 % - \catcode`\}=2 % - \catcode`\#=6 % - \catcode`\[=12 % - \catcode`\]=12 % - \catcode`\%=14 % - \catcode`\ =10 % - \catcode13=5 % - \RequirePackage{accsupp}[2018/03/28]\relax - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% % \section{Installation} % % \subsection{Download} @@ -1012,7 +935,6 @@ ed as % accsupp.pdf & doc/latex/oberdiek/accsupp.pdf\\ % accsupp-example1.tex & doc/latex/oberdiek/accsupp-example1.tex\\ % accsupp-example2.tex & doc/latex/oberdiek/accsupp-example2.tex\\ -% test/accsupp-test1.tex & doc/latex/oberdiek/test/accsupp-test1.tex\\ % accsupp.dtx & source/latex/oberdiek/accsupp.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/accsupp.pdf b/macros/latex/contrib/oberdiek/accsupp.pdf index dfa902291b..6f35b10ffd 100644 Binary files a/macros/latex/contrib/oberdiek/accsupp.pdf and b/macros/latex/contrib/oberdiek/accsupp.pdf differ diff --git a/macros/latex/contrib/oberdiek/aliascnt.dtx b/macros/latex/contrib/oberdiek/aliascnt.dtx index e3db954c80..60289eaeaf 100644 --- a/macros/latex/contrib/oberdiek/aliascnt.dtx +++ b/macros/latex/contrib/oberdiek/aliascnt.dtx @@ -126,10 +126,6 @@ and the derived files \file{aliascnt.drv}{\from{aliascnt.dtx}{driver}}% \usedir{tex/latex/oberdiek}% \file{aliascnt.sty}{\from{aliascnt.dtx}{package}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{aliascnt.xml}{\from{aliascnt.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -166,21 +162,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{aliascnt.drv} % diff --git a/macros/latex/contrib/oberdiek/aliascnt.pdf b/macros/latex/contrib/oberdiek/aliascnt.pdf index f9d784af69..5fc66906c5 100644 Binary files a/macros/latex/contrib/oberdiek/aliascnt.pdf and b/macros/latex/contrib/oberdiek/aliascnt.pdf differ diff --git a/macros/latex/contrib/oberdiek/alphalph.dtx b/macros/latex/contrib/oberdiek/alphalph.dtx index 2f22685dec..7c70cd4825 100644 --- a/macros/latex/contrib/oberdiek/alphalph.dtx +++ b/macros/latex/contrib/oberdiek/alphalph.dtx @@ -66,9 +66,6 @@ % Installation: % TDS:tex/generic/oberdiek/alphalph.sty % TDS:doc/latex/oberdiek/alphalph.pdf -% TDS:doc/latex/oberdiek/test/alphalph-test1.tex -% TDS:doc/latex/oberdiek/test/alphalph-test2.tex -% TDS:doc/latex/oberdiek/test/alphalph-test3.tex % TDS:source/latex/oberdiek/alphalph.dtx % %<*ignore> @@ -141,10 +138,6 @@ and the derived files % \file{alphalph-test1.tex}{\from{alphalph.dtx}{test1}}% % \file{alphalph-test2.tex}{\from{alphalph.dtx}{test2,etex}}% % \file{alphalph-test3.tex}{\from{alphalph.dtx}{test2,noetex}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{alphalph.xml}{\from{alphalph.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -207,21 +200,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{alphalph.drv} % @@ -1303,353 +1281,6 @@ and the derived files % % \end{macrocode} % -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input alphalph.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \section{Macro tests} -% -% \begin{macrocode} -%<*test2> -\NeedsTeXFormat{LaTeX2e} -\nofiles -\documentclass{article} -%<*noetex> -\makeatletter -\let\saved@numexpr\numexpr -\newcommand*{\DisableNumexpr}{% - \let\numexpr\@undefined -} -\newcommand*{\RestoreNumexpr}{% - \let\numexpr\saved@numexpr -} -\DisableNumexpr -% -\usepackage{alphalph}[2016/05/16] -%\RestoreNumexpr -\usepackage{qstest} -\IncludeTests{*} -\LogTests{log}{*}{*} - -\newcommand*{\TestCmd}[3]{% - \setbox0=\hbox{% -% \DisableNumexpr - \edef\TestString{#1{#2}}% - \expandafter\Expect\expandafter{\TestString}{#3}% - \edef\TestString{#1{#2} }% - \expandafter\Expect\expandafter{\TestString}{#3 }% - }% - \Expect*{\the\wd0}{0.0pt}% -} - -\makeatletter -\newalphalph\LaTeXAlphAlph\@Alph{26} -\newalphalph\LaTeXalphalph\@alph{26} -\newalphalph\AlphWrap[wrap]\alphalph@Alph{26} -\newalphalph\alphwrap[wrap]\alphalph@alph{26} -\newalphalph\LaTeXAlphWrap[wrap]\@Alph{26} -\newalphalph\LaTeXalphwrap[wrap]\@alph{26} -\def\LastSymbol#1{% - \ifx\\#1\\% - \else - \@LastSymbol#1\@nil - \fi -} -\def\@LastSymbol#1#2\@nil{% - \ifx\\#2\\% - #1% - \else - \@LastSymbol#2\@nil - \fi -} -\makeatother -\newcommand*{\TestAlph}[2]{% - \uppercase{\TestCallCmd\AlphAlph{#2}}{#1}% - \lowercase{\TestCallCmd\alphalph{#2}}{#1}% - \uppercase{\TestCallCmd\LaTeXAlphAlph{#2}}{#1}% - \lowercase{\TestCallCmd\LaTeXalphalph{#2}}{#1}% - \edef\WrapString{\LastSymbol{#2}}% - \expandafter\TestAlphWrap\expandafter{\WrapString}{#1}% -} -\newcommand*{\TestAlphWrap}[2]{% - \uppercase{\TestCallCmd\AlphWrap{#1}}{#2}% - \lowercase{\TestCallCmd\alphwrap{#1}}{#2}% - \uppercase{\TestCallCmd\LaTeXAlphWrap{#1}}{#2}% - \lowercase{\TestCallCmd\LaTeXalphwrap{#1}}{#2}% -} -\newcommand*{\TestCallCmd}[3]{% - \TestCmd#1{#3}{#2}% -} -\begin{qstest}{AlphSymbols}{alphalph, AlphAlph, symbols} - \TestAlph{1}{a}% - \TestAlph{2}{b}% - \TestAlph{3}{c}% - \TestAlph{4}{d}% - \TestAlph{5}{e}% - \TestAlph{6}{f}% - \TestAlph{7}{g}% - \TestAlph{8}{h}% - \TestAlph{9}{i}% - \TestAlph{10}{j}% - \TestAlph{11}{k}% - \TestAlph{12}{l}% - \TestAlph{13}{m}% - \TestAlph{14}{n}% - \TestAlph{15}{o}% - \TestAlph{16}{p}% - \TestAlph{17}{q}% - \TestAlph{18}{r}% - \TestAlph{19}{s}% - \TestAlph{20}{t}% - \TestAlph{21}{u}% - \TestAlph{22}{v}% - \TestAlph{23}{w}% - \TestAlph{24}{x}% - \TestAlph{25}{y}% - \TestAlph{26}{z}% -\end{qstest} -\begin{qstest}{AlphRange}{alphalph, range} - \TestAlph{0}{}% - \TestAlph{-1}{}% - \TestAlph{-2147483647}{}% - \TestAlph{27}{aa}% - \TestAlph{28}{ab}% - \TestAlph{52}{az}% - \TestAlph{53}{ba}% - \TestAlph{78}{bz}% - \TestAlph{79}{ca}% - \TestAlph{702}{zz}% - \TestAlph{703}{aaa}% - \TestAlph{2147483647}{fxshrxw}% -\end{qstest} - -\makeatletter -\newcommand*{\myvocals}[1]{% - \ifcase#1X\or A\or E\or I\or O\or U\else Y\fi -} -\makeatother -\newalphalph\vocalsvocals\myvocals{5} -\newcommand*{\TestVocals}{% - \TestCmd\vocalsvocals -} -\begin{qstest}{vocals}{vocals} - \TestVocals{0}{}% - \TestVocals{1}{A}% - \TestVocals{2}{E}% - \TestVocals{3}{I}% - \TestVocals{4}{O}% - \TestVocals{5}{U}% - \TestVocals{6}{AA}% - \TestVocals{7}{AE}% - \TestVocals{8}{AI}% - \TestVocals{9}{AO}% - \TestVocals{10}{AU}% - \TestVocals{11}{EA}% - \TestVocals{24}{OO}% - \TestVocals{25}{OU}% - \TestVocals{26}{UA}% - \TestVocals{29}{UO}% - \TestVocals{30}{UU}% - \TestVocals{31}{AAA}% - \TestVocals{155}{UUU}% - \TestVocals{156}{AAAA}% - \TestVocals{2147483647}{AIIOOEEIOIIUOE}% -\end{qstest} - -\makeatletter -\newalphalph\AlphMult[mult]{\alphalph@Alph}{26} -\newalphalph\alphmult[mult]{\alphalph@alph}{26} -\newalphalph\LaTeXAlphMult[mult]{\@Alph}{26} -\newalphalph\LaTeXalphmult[mult]{\@alph}{26} -\makeatother -\newcommand*{\TestMult}[2]{% - \uppercase{\TestCallCmd\AlphMult{#2}}{#1}% - \lowercase{\TestCallCmd\alphmult{#2}}{#1}% - \uppercase{\TestCallCmd\LaTeXAlphMult{#2}}{#1}% - \lowercase{\TestCallCmd\LaTeXalphmult{#2}}{#1}% -} -\begin{qstest}{mult}{mult} - \TestMult{0}{}% - \TestMult{-1}{}% - \TestMult{-2147483647}{}% - \TestMult{1}{a}% - \TestMult{2}{b}% - \TestMult{26}{z}% - \TestMult{27}{aa}% - \TestMult{28}{bb}% - \TestMult{52}{zz}% - \TestMult{53}{aaa}% - \TestMult{54}{bbb}% - \TestMult{259}{yyyyyyyyyy}% - \TestMult{260}{zzzzzzzzzz}% - \TestMult{261}{aaaaaaaaaaa}% - \TestMult{262}{bbbbbbbbbbb}% -\end{qstest} - -\def\myvocalsB#1{% - \ifcase#1\or A\or E\or I\or O\or U\fi -} -\begin{qstest}{symbolnum}{symbolnum} - \makeatletter - \def\Test#1#2{% - \let\TestCmd\relax - \newalphalph\TestCmd{#1}{}% - \Expect*{\AlPh@Number}{#2}% - }% - \Test\@alph{26}% - \Test\@Alph{26}% - \Test\@fnsymbol{9}% - \Test\myvocalsB{5}% - \Test\alphalph@alph{26}% - \Test\alphalph@Alph{26}% -\end{qstest} - -\begin{qstest}{list}{list} - \makeatletter - \def\catch#1\relax{% - \def\FoundList{\catch#1}% - }% - \def\Test[#1]#2#3#4{% - \let\testcmd\relax - \newalphalph\testcmd[{#1}]{\catch}{#2}% - \testcmd{#3}|\relax - \expandafter\Expect\expandafter{\FoundList}{#4|}% - % - \let\SavedCatch\catch - \def\catch{\noexpand\catch\noexpand\foo}% - \edef\Result{#4|}% - \@onelevel@sanitize\Result - \let\catch\SavedCatch - \let\testcmd\relax - \newalphalph\testcmd[{#1}]{\catch\foo}{#2}% - \testcmd{#3}|\relax - \@onelevel@sanitize\FoundList - \Expect*{\FoundList}*{\Result}% - }% - \Test[alph]{26}{3}{\catch{3}}% - \Test[alph]{26}{12}{\catch{12}}% - \Test[alph]{26}{27}{\catch{1}\catch{1}}% - \Test[alph]{26}{78}{\catch{2}\catch{26}}% - \Test[wrap]{26}{7}{\catch{7}}% - \Test[wrap]{26}{14}{\catch{14}}% - \Test[wrap]{26}{80}{\catch{2}}% - \Test[wrap]{26}{700}{\catch{24}}% - \Test[mult]{26}{4}{\catch{4}}% - \Test[mult]{26}{17}{\catch{17}}% - \Test[mult]{26}{54}{\catch{2}\catch{2}\catch{2}}% -\end{qstest} - -\begin{document} -\end{document} -% -% \end{macrocode} -% % \section{Installation} % % \subsection{Download} @@ -1699,9 +1330,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % alphalph.sty & tex/generic/oberdiek/alphalph.sty\\ % alphalph.pdf & doc/latex/oberdiek/alphalph.pdf\\ -% test/alphalph-test1.tex & doc/latex/oberdiek/test/alphalph-test1.tex\\ -% test/alphalph-test2.tex & doc/latex/oberdiek/test/alphalph-test2.tex\\ -% test/alphalph-test3.tex & doc/latex/oberdiek/test/alphalph-test3.tex\\ % alphalph.dtx & source/latex/oberdiek/alphalph.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/alphalph.pdf b/macros/latex/contrib/oberdiek/alphalph.pdf index 4ad8540c81..5f7559119b 100644 Binary files a/macros/latex/contrib/oberdiek/alphalph.pdf and b/macros/latex/contrib/oberdiek/alphalph.pdf differ diff --git a/macros/latex/contrib/oberdiek/askinclude.dtx b/macros/latex/contrib/oberdiek/askinclude.dtx index 4e109fbd5d..aa249c79fd 100644 --- a/macros/latex/contrib/oberdiek/askinclude.dtx +++ b/macros/latex/contrib/oberdiek/askinclude.dtx @@ -78,33 +78,6 @@ % Installation: % TDS:tex/latex/oberdiek/askinclude.sty % TDS:doc/latex/oberdiek/askinclude.pdf -% TDS:doc/latex/oberdiek/test/askinclude-a.tex -% TDS:doc/latex/oberdiek/test/askinclude-b.tex -% TDS:doc/latex/oberdiek/test/askinclude-c.tex -% TDS:doc/latex/oberdiek/test/askinclude-test1.tex -% TDS:doc/latex/oberdiek/test/askinclude-test2.tex -% TDS:doc/latex/oberdiek/test/askinclude-test3.tex -% TDS:doc/latex/oberdiek/test/askinclude-test4.tex -% TDS:doc/latex/oberdiek/test/askinclude-test5.tex -% TDS:doc/latex/oberdiek/test/askinclude-test6.tex -% TDS:doc/latex/oberdiek/test/askinclude-test7.tex -% TDS:doc/latex/oberdiek/test/askinclude-test8.tex -% TDS:doc/latex/oberdiek/test/askinclude-test9.tex -% TDS:doc/latex/oberdiek/test/askinclude-test10.tex -% TDS:doc/latex/oberdiek/test/askinclude-test11.tex -% TDS:doc/latex/oberdiek/test/askinclude-test12.tex -% TDS:doc/latex/oberdiek/test/askinclude-test13.tex -% TDS:doc/latex/oberdiek/test/askinclude-test14.tex -% TDS:doc/latex/oberdiek/test/askinclude-test15.tex -% TDS:doc/latex/oberdiek/test/askinclude-test16.tex -% TDS:doc/latex/oberdiek/test/askinclude-test17.tex -% TDS:doc/latex/oberdiek/test/askinclude-test18.tex -% TDS:doc/latex/oberdiek/test/askinclude-test19.tex -% TDS:doc/latex/oberdiek/test/askinclude-test20.tex -% TDS:doc/latex/oberdiek/test/askinclude-test21.tex -% TDS:doc/latex/oberdiek/test/askinclude-test22.tex -% TDS:doc/latex/oberdiek/test/askinclude-test23.tex -% TDS:doc/latex/oberdiek/test/askinclude-test24.tex % TDS:source/latex/oberdiek/askinclude.dtx % %<*ignore> @@ -217,10 +190,6 @@ and the derived files % \file{askinclude-test22.tex}{\from{askinclude.dtx}{test0,test22}}% % \file{askinclude-test23.tex}{\from{askinclude.dtx}{test0,test23}}% % \file{askinclude-test24.tex}{\from{askinclude.dtx}{test0,test24}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{askinclude.xml}{\from{askinclude.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -304,21 +273,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{askinclude.drv} % @@ -1672,994 +1626,6 @@ and the derived files \AskInc@AtEnd% % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Included files} -% -% \begin{macrocode} -%<*a> -\chapter{Chapter A} -\let\filea=Y -% -% \end{macrocode} -% \begin{macrocode} -%<*b> -\chapter{Chapter B} -\let\fileb=Y -% -% \end{macrocode} -% \begin{macrocode} -%<*c> -\chapter{Chapter C} -\let\filec=Y -% -% \end{macrocode} -% -% \subsection{Special test setup} -% -% \begin{macrocode} -%<*test18> -\includeonly{askinclude-b} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test20|test21|test22> -\let\AtBeginDocumentMode=N% -% -% \end{macrocode} -% -% \subsection{Common start} -% -% \begin{macrocode} -%<*test0> -\ifx\CompatibilityMode Y% - \documentstyle[filecontents,qstest,askinclude,pdftexcmds]{book}% -\else - \documentclass{book}% - \usepackage{filecontents}% - \usepackage{qstest}% - \usepackage{pdftexcmds}% -%<*test1> - \makeatletter - \def\RestoreCatcodes{}% - \count@=0 % - \loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% - \ifnum\count@<255 % - \advance\count@\@ne - \repeat - \def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@\@ne - \repeat - }% - \def\Test#1\EndTest{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\{=1 % - \catcode`\}=2 % - \catcode`\#=6 % - \catcode`\[=12 % - \catcode`\]=12 % - \catcode`\%=14 % - \catcode`\ =10 % - \catcode13=5 % - #1\relax - \RestoreCatcodes - \makeatother - }% - \Test -% -%<*!test1> - \ifx\AtBeginDocumentMode Y% - \AtBeginDocument{% - \usepackage{askinclude}[2018/11/01]% - }% - \else -% - \usepackage{askinclude}[2018/11/01]% -%<*!test1> - \fi -% -%<*test1> - \EndTest -% -\fi -\IncludeTests{*} -\LogTests{log}{*}{*} -\makeatletter -\let\org@typein\typein -\def\typein[#1]#2{% - \ifx\@Stack\@StackEmpty - \begin{qstest}{StackNonEmpty}{StackNonEmpty}% - \Expect{Error: empty stack}{}% - \end{qstest}% - \org@typein[{#1}]{#2}% - \else - \edef#1{% - \unexpanded\expandafter\expandafter\expandafter{% - \expandafter\@car\@Stack\@nil - }% - }% - \xdef\@Stack{% - \unexpanded\expandafter\expandafter\expandafter{% - \expandafter\@cdr\@Stack\@nil - }% - }% - \typeout{}% - \typeout{\string#1=#1}% - \fi -} -\def\@StackEmpty{\BOTTOM} -\let\@Stack\@StackEmpty -\newcommand*{\Stack}[1]{% - \def\@Stack{#1\BOTTOM}% -} -\AtEndDocument{% - \begin{qstest}{StackUsed}{StackUsed}% - \Expect*{% - \ifx\@Stack\@StackEmpty - \else - Error: Unused stack entries% - \fi - }{}% - \end{qstest}% -} -\newcommand*{\CheckInclude}[2]{% - \include{askinclude-#1}% - \begin{qstest}{CheckInclude-#1}{CheckInclude-#1}% - \Expect*{% - \expandafter\ifx\csname file#1\endcsname Ytrue\else false\fi - }{#2}% - \end{qstest}% -} -\def\@EndChecks{} -\AtBeginDocument{% - \AtEndDocument{% - \if@filesw - \immediate\write\@mainaux{\string\@EndChecks}% - \fi - }% -} -\newcommand*{\CheckAnswer}[1]{% - \gdef\AnswerText{#1}% - \g@addto@macro\@EndChecks{\@CheckAnswer}% -} -\def\@CheckAnswer{% - \begin{qstest}{CheckAnswer}{CheckAnswer}% - \Expect*{\unexpanded\expandafter{\AskInc@Answer}}% - *{\unexpanded\expandafter{\AnswerText}}% - \end{qstest}% -} -\newcommand*{\CheckMatchMethod}[1]{% - \gdef\MatchMethodText{#1}% - \g@addto@macro\@EndChecks{\@CheckMatchMethod}% -} -\def\@CheckMatchMethod{% - \begin{qstest}{CheckMatchMethod}{CheckMatchMethod}% - \Expect*{\unexpanded\expandafter{\AskInc@MatchMethod}}% - *{\unexpanded\expandafter{\MatchMethodText}}% - \end{qstest}% -} -\def\@CheckAux{% - \begin{qstest}{CheckAux}{CheckAux}% - \def\GetFileContents##1{% - \pdf@unescapehex{% - \pdf@filedump{0}{\pdf@filesize{##1}}{##1}% - }% - }% - \Expect*{\GetFileContents{\jobname.aux}}% - *{\GetFileContents{\jobname-aux.aux}}% - \end{qstest}% -} -\g@addto@macro\@EndChecks{\@CheckAux} -\let\org@filec@ntents\filec@ntents -\def\filec@ntents{% - \catcode`\|=0 % - \org@filec@ntents -} -\begingroup - \endlinechar=-1 % - \catcode`\|=0 % - \@makeother\#% - \@makeother\\% - |gdef|AddList{% - \providecommand*\AskInc@AddList[2]{% - \ifcase\ifx#1\@undefined - \else\ifx#1\relax - \else\ifx#1\@empty - \else1\fi\fi\fi0 % - \gdef#1{#2}% - \else - \g@addto@macro#1{,#2}% - \fi - }% - }% - |gdef|AddFile{% - \providecommand\AskInc@AddFile{% - \AskInc@AddList\AskInc@Files - }% - }% - |gdef|AddMatch{% - \providecommand\AskInc@AddMatch{% - \AskInc@AddList\AskInc@MatchFiles - }% - }% -|endgroup -% -% \end{macrocode} -% -% \subsection{First run tests} -% -% \begin{macrocode} -%<*test1> -\Stack{{}} -\CheckAnswer{*} -\begin{filecontents*}{\jobname.aux} -\relax -\end{filecontents*} -\begin{filecontents*}{\jobname-aux.aux} -\relax|space -\gdef\AskInc@Answer{*} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\@input{askinclude-a.aux} -\AskInc@AddFile{askinclude-b} -\@input{askinclude-b.aux} -\AskInc@AddFile{askinclude-c} -\@input{askinclude-c.aux} -\@EndChecks -\end{filecontents*} -\begin{document} -\CheckInclude{a}{true} -\CheckInclude{b}{true} -\CheckInclude{c}{true} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test2> -\Stack{*} -\CheckAnswer{*} -\begin{filecontents*}{\jobname.aux} -\relax -\end{filecontents*} -\begin{filecontents*}{\jobname-aux.aux} -\relax|space -\gdef\AskInc@Answer{*} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\@input{askinclude-a.aux} -\AskInc@AddFile{askinclude-b} -\@input{askinclude-b.aux} -\AskInc@AddFile{askinclude-c} -\@input{askinclude-c.aux} -\@EndChecks -\end{filecontents*} -\begin{document} -\CheckInclude{a}{true} -\CheckInclude{b}{true} -\CheckInclude{c}{true} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test3> -\Stack{-}% -\CheckAnswer{-} -\begin{filecontents*}{\jobname.aux} -\relax -\end{filecontents*} -\begin{filecontents*}{\jobname-aux.aux} -\relax|space -\gdef\AskInc@Answer{-} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\@input{askinclude-a.aux} -\AskInc@AddFile{askinclude-b} -\@input{askinclude-b.aux} -\AskInc@AddFile{askinclude-c} -\@input{askinclude-c.aux} -\@EndChecks -\end{filecontents*} -\begin{document} -\CheckInclude{a}{false} -\CheckInclude{b}{false} -\CheckInclude{c}{false} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test4> -\Stack{{askinclude-b}} -\CheckAnswer{askinclude-b} -\begin{filecontents*}{\jobname.aux} -\relax -\end{filecontents*} -\begin{filecontents*}{\jobname-aux.aux} -\relax|space -\gdef\AskInc@Answer{askinclude-b} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\@input{askinclude-a.aux} -\AskInc@AddFile{askinclude-b} -\@input{askinclude-b.aux} -\AskInc@AddFile{askinclude-c} -\@input{askinclude-c.aux} -\@EndChecks -\end{filecontents*} -\begin{document} -\CheckInclude{a}{false} -\CheckInclude{b}{true} -\CheckInclude{c}{false} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test5> -\Stack{{askinclude-a,askinclude-c}} -\CheckAnswer{askinclude-a,askinclude-c} -\begin{filecontents*}{\jobname.aux} -\relax -\end{filecontents*} -\begin{filecontents*}{\jobname-aux.aux} -\relax|space -\gdef\AskInc@Answer{askinclude-a,askinclude-c} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\@input{askinclude-a.aux} -\AskInc@AddFile{askinclude-b} -\@input{askinclude-b.aux} -\AskInc@AddFile{askinclude-c} -\@input{askinclude-c.aux} -\@EndChecks -\end{filecontents*} -\begin{document} -\CheckInclude{a}{true} -\CheckInclude{b}{false} -\CheckInclude{c}{true} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test6> -\Stack{?yny} -\CheckAnswer{askinclude-a,askinclude-c} -\begin{filecontents*}{\jobname.aux} -\relax -\end{filecontents*} -\begin{filecontents*}{\jobname-aux.aux} -\relax|space -\gdef\AskInc@Answer{} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\gdef\AskInc@Answer{askinclude-a} -\@input{askinclude-a.aux} -\AskInc@AddFile{askinclude-b} -\@input{askinclude-b.aux} -\AskInc@AddFile{askinclude-c} -\gdef\AskInc@Answer{askinclude-a,askinclude-c} -\@input{askinclude-c.aux} -\@EndChecks -\end{filecontents*} -\begin{document} -\CheckInclude{a}{true} -\CheckInclude{b}{false} -\CheckInclude{c}{true} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test7> -\Stack{?yA} -\CheckAnswer{askinclude-a,askinclude-b,askinclude-c} -\begin{filecontents*}{\jobname.aux} -\relax -\end{filecontents*} -\begin{filecontents*}{\jobname-aux.aux} -\relax|space -\gdef\AskInc@Answer{} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\gdef\AskInc@Answer{askinclude-a} -\@input{askinclude-a.aux} -\AskInc@AddFile{askinclude-b} -\gdef\AskInc@Answer{askinclude-a,askinclude-b} -\@input{askinclude-b.aux} -\AskInc@AddFile{askinclude-c} -\gdef\AskInc@Answer{askinclude-a,askinclude-b,askinclude-c} -\@input{askinclude-c.aux} -\@EndChecks -\end{filecontents*} -\begin{document} -\CheckInclude{a}{true} -\CheckInclude{b}{true} -\CheckInclude{c}{true} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test8> -\Stack{?yD} -\CheckAnswer{askinclude-a,askinclude-b,askinclude-c} -\begin{filecontents*}{\jobname.aux} -\relax -\end{filecontents*} -\begin{filecontents*}{\jobname-aux.aux} -\relax|space -\gdef\AskInc@Answer{} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\gdef\AskInc@Answer{askinclude-a} -\@input{askinclude-a.aux} -\AskInc@AddFile{askinclude-b} -\gdef\AskInc@Answer{askinclude-a,askinclude-b} -\@input{askinclude-b.aux} -\AskInc@AddFile{askinclude-c} -\gdef\AskInc@Answer{askinclude-a,askinclude-b,askinclude-c} -\@input{askinclude-c.aux} -\@EndChecks -\end{filecontents*} -\begin{document} -\CheckInclude{a}{true} -\CheckInclude{b}{true} -\CheckInclude{c}{true} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test9> -\Stack{?yN} -\CheckAnswer{askinclude-a} -\begin{filecontents*}{\jobname.aux} -\relax -\end{filecontents*} -\begin{filecontents*}{\jobname-aux.aux} -\relax|space -\gdef\AskInc@Answer{} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\gdef\AskInc@Answer{askinclude-a} -\@input{askinclude-a.aux} -\AskInc@AddFile{askinclude-b} -\@input{askinclude-b.aux} -\AskInc@AddFile{askinclude-c} -\@input{askinclude-c.aux} -\@EndChecks -\end{filecontents*} -\begin{document} -\CheckInclude{a}{true} -\CheckInclude{b}{false} -\CheckInclude{c}{false} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test10> -\Stack{?{}N} -\CheckAnswer{askinclude-a} -\begin{filecontents*}{\jobname.aux} -\relax -\end{filecontents*} -\begin{filecontents*}{\jobname-aux.aux} -\relax|space -\gdef\AskInc@Answer{} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\gdef\AskInc@Answer{askinclude-a} -\@input{askinclude-a.aux} -\AskInc@AddFile{askinclude-b} -\@input{askinclude-b.aux} -\AskInc@AddFile{askinclude-c} -\@input{askinclude-c.aux} -\@EndChecks -\end{filecontents*} -\begin{document} -\CheckInclude{a}{true} -\CheckInclude{b}{false} -\CheckInclude{c}{false} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test11> -\Stack{?xxyxxN} -\CheckAnswer{askinclude-a} -\begin{filecontents*}{\jobname.aux} -\relax -\end{filecontents*} -\begin{filecontents*}{\jobname-aux.aux} -\relax|space -\gdef\AskInc@Answer{} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\gdef\AskInc@Answer{askinclude-a} -\@input{askinclude-a.aux} -\AskInc@AddFile{askinclude-b} -\@input{askinclude-b.aux} -\AskInc@AddFile{askinclude-c} -\@input{askinclude-c.aux} -\@EndChecks -\end{filecontents*} -\begin{document} -\CheckInclude{a}{true} -\CheckInclude{b}{false} -\CheckInclude{c}{false} -% -% \end{macrocode} -% -% \subsection{Second run tests} -% -% \begin{macrocode} -%<*test12> -\Stack{{}} -\CheckAnswer{askinclude-b} -\begin{filecontents*}{\jobname.aux} -\gdef\AskInc@Answer{askinclude-b} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\AskInc@AddFile{askinclude-b} -\AskInc@AddFile{askinclude-c} -\end{filecontents*} -\begin{filecontents*}{\jobname-aux.aux} -\relax|space -\gdef\AskInc@Answer{askinclude-b} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\@input{askinclude-a.aux} -\AskInc@AddFile{askinclude-b} -\@input{askinclude-b.aux} -\AskInc@AddFile{askinclude-c} -\@input{askinclude-c.aux} -\@EndChecks -\end{filecontents*} -\begin{document} -\CheckInclude{a}{false} -\CheckInclude{b}{true} -\CheckInclude{c}{false} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test13> -\Stack{{}} -\CheckAnswer{askinclude-b} -\begin{filecontents*}{\jobname.aux} -\gdef\AskInc@Answer{askinclude-b} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\AskInc@AddFile{askinclude-b} -\end{filecontents*} -\begin{filecontents*}{\jobname-aux.aux} -\relax|space -\gdef\AskInc@Answer{askinclude-b} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\@input{askinclude-a.aux} -\AskInc@AddFile{askinclude-b} -\@input{askinclude-b.aux} -\AskInc@AddFile{askinclude-c} -\@input{askinclude-c.aux} -\@EndChecks -\end{filecontents*} -\begin{document} -\CheckInclude{a}{false} -\CheckInclude{b}{true} -\CheckInclude{c}{false} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test14> -\Stack{{}} -\CheckAnswer{*} -\begin{filecontents*}{\jobname.aux} -\gdef\AskInc@Answer{*} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\AskInc@AddFile{askinclude-b} -\end{filecontents*} -\begin{filecontents*}{\jobname-aux.aux} -\relax|space -\gdef\AskInc@Answer{*} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\@input{askinclude-a.aux} -\AskInc@AddFile{askinclude-b} -\@input{askinclude-b.aux} -\AskInc@AddFile{askinclude-c} -\@input{askinclude-c.aux} -\@EndChecks -\end{filecontents*} -\begin{document} -\CheckInclude{a}{true} -\CheckInclude{b}{true} -\CheckInclude{c}{true} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test15> -\Stack{?D} -\CheckAnswer{askinclude-a,askinclude-c} -\begin{filecontents*}{\jobname.aux} -\gdef\AskInc@Answer{askinclude-a} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\AskInc@AddFile{askinclude-b} -\end{filecontents*} -\begin{filecontents*}{\jobname-aux.aux} -\relax|space -\gdef\AskInc@Answer{} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\gdef\AskInc@Answer{askinclude-a} -\@input{askinclude-a.aux} -\AskInc@AddFile{askinclude-b} -\@input{askinclude-b.aux} -\AskInc@AddFile{askinclude-c} -\gdef\AskInc@Answer{askinclude-a,askinclude-c} -\@input{askinclude-c.aux} -\@EndChecks -\end{filecontents*} -\begin{document} -\CheckInclude{a}{true} -\CheckInclude{b}{false} -\CheckInclude{c}{true} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test16> -\Stack{?A} -\CheckAnswer{askinclude-a,askinclude-b,askinclude-c} -\begin{filecontents*}{\jobname.aux} -\gdef\AskInc@Answer{askinclude-a} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\AskInc@AddFile{askinclude-b} -\end{filecontents*} -\begin{filecontents*}{\jobname-aux.aux} -\relax|space -\gdef\AskInc@Answer{} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\gdef\AskInc@Answer{askinclude-a} -\@input{askinclude-a.aux} -\AskInc@AddFile{askinclude-b} -\gdef\AskInc@Answer{askinclude-a,askinclude-b} -\@input{askinclude-b.aux} -\AskInc@AddFile{askinclude-c} -\gdef\AskInc@Answer{askinclude-a,askinclude-b,askinclude-c} -\@input{askinclude-c.aux} -\@EndChecks -\end{filecontents*} -\begin{document} -\CheckInclude{a}{true} -\CheckInclude{b}{true} -\CheckInclude{c}{true} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test17> -\Stack{?N} -\CheckAnswer{} -\begin{filecontents*}{\jobname.aux} -\gdef\AskInc@Answer{askinclude-a} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\AskInc@AddFile{askinclude-b} -\end{filecontents*} -\begin{filecontents*}{\jobname-aux.aux} -\relax|space -\gdef\AskInc@Answer{} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\@input{askinclude-a.aux} -\AskInc@AddFile{askinclude-b} -\@input{askinclude-b.aux} -\AskInc@AddFile{askinclude-c} -\@input{askinclude-c.aux} -\@EndChecks -\end{filecontents*} -\begin{document} -\CheckInclude{a}{false} -\CheckInclude{b}{false} -\CheckInclude{c}{false} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test18> -\Stack{} -\CheckAnswer{askinclude-a} -\begin{filecontents*}{\jobname.aux} -\gdef\AskInc@Answer{askinclude-a} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\AskInc@AddFile{askinclude-b} -\end{filecontents*} -\begin{filecontents*}{\jobname-aux.aux} -\relax|space -\gdef\AskInc@Answer{askinclude-a} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\@input{askinclude-a.aux} -\AskInc@AddFile{askinclude-b} -\@input{askinclude-b.aux} -\AskInc@AddFile{askinclude-c} -\@input{askinclude-c.aux} -\@EndChecks -\end{filecontents*} -\begin{document} -\CheckInclude{a}{false} -\CheckInclude{b}{true} -\CheckInclude{c}{false} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test19> -\Stack{?N} -\CheckAnswer{} -\begin{filecontents*}{\jobname.aux} -\gdef\AskInc@Answer{askinclude-a} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\AskInc@AddFile{askinclude-b} -\end{filecontents*} -\begin{filecontents*}{\jobname-aux.aux} -\relax|space -\gdef\AskInc@Answer{} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\@input{askinclude-a.aux} -\AskInc@AddFile{askinclude-b} -\@input{askinclude-b.aux} -\AskInc@AddFile{askinclude-c} -\@input{askinclude-c.aux} -\@EndChecks -\end{filecontents*} -\ifx\AtBeginDocumentMode Y% - \AtBeginDocument{\includeonly{askinclude-b}}% -\else - \includeonly{askinclude-b}% -\fi -\begin{document} -\CheckInclude{a}{false} -\CheckInclude{b}{false} -\CheckInclude{c}{false} -% -% \end{macrocode} -% -% \subsection{Compatibility for changing from old to new} -% -% \begin{macrocode} -%<*test20> -\Stack{{}} -\CheckAnswer{*} -\begin{filecontents*}{\jobname.aux} -\@includeonly{*} -\end{filecontents*} -\begin{filecontents*}{\jobname-aux.aux} -\relax|space -\gdef\AskInc@Answer{*} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\@input{askinclude-a.aux} -\AskInc@AddFile{askinclude-b} -\@input{askinclude-b.aux} -\AskInc@AddFile{askinclude-c} -\@input{askinclude-c.aux} -\@EndChecks -\end{filecontents*} -\begin{document} -\CheckInclude{a}{true} -\CheckInclude{b}{true} -\CheckInclude{c}{true} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test21> -\Stack{{}} -\CheckAnswer{-} -\begin{filecontents*}{\jobname.aux} -\@includeonly{} -\end{filecontents*} -\begin{filecontents*}{\jobname-aux.aux} -\relax|space -\gdef\AskInc@Answer{-} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\@input{askinclude-a.aux} -\AskInc@AddFile{askinclude-b} -\@input{askinclude-b.aux} -\AskInc@AddFile{askinclude-c} -\@input{askinclude-c.aux} -\@EndChecks -\end{filecontents*} -\begin{document} -\CheckInclude{a}{false} -\CheckInclude{b}{false} -\CheckInclude{c}{false} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test22> -\Stack{{}} -\CheckAnswer{askinclude-a,askinclude-c} -\begin{filecontents*}{\jobname.aux} -\@includeonly{askinclude-a,askinclude-c} -\end{filecontents*} -\begin{filecontents*}{\jobname-aux.aux} -\relax|space -\gdef\AskInc@Answer{askinclude-a,askinclude-c} -\gdef\AskInc@MatchMethod{} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -\@input{askinclude-a.aux} -\AskInc@AddFile{askinclude-b} -\@input{askinclude-b.aux} -\AskInc@AddFile{askinclude-c} -\@input{askinclude-c.aux} -\@EndChecks -\end{filecontents*} -\begin{document} -\CheckInclude{a}{true} -\CheckInclude{b}{false} -\CheckInclude{c}{true} -% -% \end{macrocode} -% -% \subsection{Regular expressions} -% -% \begin{macrocode} -%<*test23> -\Stack{{makematch}{*,!askinclude-b}} -\CheckAnswer{*,!askinclude-b} -\CheckMatchMethod{makematch} -\begin{filecontents*}{\jobname.aux} -\relax -\end{filecontents*} -\begin{filecontents*}{\jobname-aux.aux} -\relax|space -\gdef\AskInc@Answer{*,!askinclude-b} -\gdef\AskInc@MatchMethod{makematch} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -|AddMatch -\AskInc@AddMatch{askinclude-a} -\@input{askinclude-a.aux} -\AskInc@AddFile{askinclude-b} -\@input{askinclude-b.aux} -\AskInc@AddFile{askinclude-c} -\AskInc@AddMatch{askinclude-c} -\@input{askinclude-c.aux} -\@EndChecks -\end{filecontents*} -\begin{document} -\CheckInclude{a}{true} -\CheckInclude{b}{false} -\CheckInclude{c}{true} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test24> -\Stack{{pdfmatch}{.,!askinclude-b}} -\CheckAnswer{.,!askinclude-b} -\CheckMatchMethod{pdfmatch} -\begin{filecontents*}{\jobname.aux} -\relax -\end{filecontents*} -\begin{filecontents*}{\jobname-aux.aux} -\relax|space -\gdef\AskInc@Answer{.,!askinclude-b} -\gdef\AskInc@MatchMethod{pdfmatch} -|AddList -|AddFile -\AskInc@AddFile{askinclude-a} -|AddMatch -\AskInc@AddMatch{askinclude-a} -\@input{askinclude-a.aux} -\AskInc@AddFile{askinclude-b} -\@input{askinclude-b.aux} -\AskInc@AddFile{askinclude-c} -\AskInc@AddMatch{askinclude-c} -\@input{askinclude-c.aux} -\@EndChecks -\end{filecontents*} -\begin{document} -\CheckInclude{a}{true} -\CheckInclude{b}{false} -\CheckInclude{c}{true} -% -% \end{macrocode} -% -% -% \subsection{Common end} -% -% \begin{macrocode} -%<*test0> -\end{document} -% -% \end{macrocode} -% % \section{Installation} % % \subsection{Download} @@ -2709,33 +1675,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % askinclude.sty & tex/latex/oberdiek/askinclude.sty\\ % askinclude.pdf & doc/latex/oberdiek/askinclude.pdf\\ -% test/askinclude-a.tex & doc/latex/oberdiek/test/askinclude-a.tex\\ -% test/askinclude-b.tex & doc/latex/oberdiek/test/askinclude-b.tex\\ -% test/askinclude-c.tex & doc/latex/oberdiek/test/askinclude-c.tex\\ -% test/askinclude-test1.tex & doc/latex/oberdiek/test/askinclude-test1.tex\\ -% test/askinclude-test2.tex & doc/latex/oberdiek/test/askinclude-test2.tex\\ -% test/askinclude-test3.tex & doc/latex/oberdiek/test/askinclude-test3.tex\\ -% test/askinclude-test4.tex & doc/latex/oberdiek/test/askinclude-test4.tex\\ -% test/askinclude-test5.tex & doc/latex/oberdiek/test/askinclude-test5.tex\\ -% test/askinclude-test6.tex & doc/latex/oberdiek/test/askinclude-test6.tex\\ -% test/askinclude-test7.tex & doc/latex/oberdiek/test/askinclude-test7.tex\\ -% test/askinclude-test8.tex & doc/latex/oberdiek/test/askinclude-test8.tex\\ -% test/askinclude-test9.tex & doc/latex/oberdiek/test/askinclude-test9.tex\\ -% test/askinclude-test10.tex & doc/latex/oberdiek/test/askinclude-test10.tex\\ -% test/askinclude-test11.tex & doc/latex/oberdiek/test/askinclude-test11.tex\\ -% test/askinclude-test12.tex & doc/latex/oberdiek/test/askinclude-test12.tex\\ -% test/askinclude-test13.tex & doc/latex/oberdiek/test/askinclude-test13.tex\\ -% test/askinclude-test14.tex & doc/latex/oberdiek/test/askinclude-test14.tex\\ -% test/askinclude-test15.tex & doc/latex/oberdiek/test/askinclude-test15.tex\\ -% test/askinclude-test16.tex & doc/latex/oberdiek/test/askinclude-test16.tex\\ -% test/askinclude-test17.tex & doc/latex/oberdiek/test/askinclude-test17.tex\\ -% test/askinclude-test18.tex & doc/latex/oberdiek/test/askinclude-test18.tex\\ -% test/askinclude-test19.tex & doc/latex/oberdiek/test/askinclude-test19.tex\\ -% test/askinclude-test20.tex & doc/latex/oberdiek/test/askinclude-test20.tex\\ -% test/askinclude-test21.tex & doc/latex/oberdiek/test/askinclude-test21.tex\\ -% test/askinclude-test22.tex & doc/latex/oberdiek/test/askinclude-test22.tex\\ -% test/askinclude-test23.tex & doc/latex/oberdiek/test/askinclude-test23.tex\\ -% test/askinclude-test24.tex & doc/latex/oberdiek/test/askinclude-test24.tex\\ % askinclude.dtx & source/latex/oberdiek/askinclude.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/askinclude.pdf b/macros/latex/contrib/oberdiek/askinclude.pdf index 12975d6a9a..fac4008a47 100644 Binary files a/macros/latex/contrib/oberdiek/askinclude.pdf and b/macros/latex/contrib/oberdiek/askinclude.pdf differ diff --git a/macros/latex/contrib/oberdiek/atbegshi.dtx b/macros/latex/contrib/oberdiek/atbegshi.dtx index 3c8c5aa20a..7827606797 100644 --- a/macros/latex/contrib/oberdiek/atbegshi.dtx +++ b/macros/latex/contrib/oberdiek/atbegshi.dtx @@ -69,9 +69,6 @@ % TDS:doc/latex/oberdiek/atbegshi.pdf % TDS:doc/latex/oberdiek/atbegshi-example1.tex % TDS:doc/latex/oberdiek/atbegshi-example2.tex -% TDS:doc/latex/oberdiek/test/atbegshi-test1.tex -% TDS:doc/latex/oberdiek/test/atbegshi-test2.tex -% TDS:doc/latex/oberdiek/test/atbegshi-test3.tex % TDS:source/latex/oberdiek/atbegshi.dtx % %<*ignore> @@ -148,10 +145,6 @@ and the derived files % \file{atbegshi-test1.tex}{\from{atbegshi.dtx}{test1}}% % \file{atbegshi-test2.tex}{\from{atbegshi.dtx}{test2}}% % \file{atbegshi-test3.tex}{\from{atbegshi.dtx}{test3}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{atbegshi.xml}{\from{atbegshi.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -188,21 +181,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{atbegshi.drv} % @@ -1866,272 +1844,7 @@ X \endgroup \AtBegShi@AtEnd% % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input atbegshi.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test2> -\input atbegshi.sty\relax -\def\msg#{\immediate\write16} -\msg{File: atbegshi-test2.tex 2016/06/09 v1.18 Test file for plain-TeX} -\def\testmsg#1#2{% - \msg{}% - \msg{*** Test with box (#1), expected page output [#2]}% hash-ok -} - -\newbox\voidbox -\def\void{\box\voidbox} -\begingroup - \setbox\voidbox=\void -\endgroup - -\count0=0\relax -\AtBeginShipout{% - \global\advance\count0 by 1\relax - \msg{* Inside \string\AtBeginShipout: [\the\count0]}% -} - -\AtBeginShipoutFirst{% - \msg{* Inside \string\AtBeginShipoutFirst}% - Hello World% -} - -\testmsg{\string\null}{1} -\shipout\null - -\AtBeginShipoutFirst{% - This is too late% -} - -\testmsg{void}{} -\shipout\void - -\testmsg{\string\copy255 (not void)}{2} -\setbox255\hbox{\vrule height 10bp width 10bp} -\shipout\copy255 % - -\testmsg{\string\copy255 (again)}{3} -\shipout\copy255 % - -\testmsg{\string\box255}{4} -\shipout\box255 % - -\testmsg{\string\box255 (again)}{} -\shipout\box255 % - -\testmsg{\string\hbox}{5} -\shipout\hbox{\vrule height 5bp width 20bp} - -\testmsg{\string\vbox}{6} -\shipout\vbox{\hrule height 20bp width 5bp} - -\testmsg{\string\null, voided by hook}{} -\def\VoidBox{% - \begingroup - \setbox\AtBeginShipoutBox=\box\AtBeginShipoutBox - \endgroup -} -\AtBeginShipout{\VoidBox} -\shipout\null -\def\VoidBox{} - -\msg{*** \string\begingroup} -\begingroup - \testmsg{void}{}% - \shipout\void -\msg{*** \string\endgroup} -\endgroup - -\msg{*** \string\begingroup} -\begingroup - \testmsg{void}{}% - \shipout\void - \testmsg{\string\null}{8}% - \shipout\null -\msg{*** \string\endgroup} -\endgroup - -\testmsg{output routine}{9} -Hello World -\vfill -\eject - -\testmsg{\string\null\space(discarded)}{} -\AtBeginShipout{% - \msg{* Inside \string\AtBeginShipout: DISCARD}% - \AtBeginShipoutDiscard -} -\shipout\null - -\end -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test3> -\NeedsTeXFormat{LaTeX2e} -\ProvidesFile{atbegshi-test3.tex}[2016/06/09 v1.18 Test file for LaTeX] -\RequirePackage{color} -\pagecolor{yellow} -\documentclass[a5paper,showtrims]{memoir} -\usepackage{atbegshi} -\AtBeginShipout{% - \setbox\AtBeginShipoutBox=\vbox{% - \vbox to 0pt{% - \kern-1.5in % - \hbox to 0pt{% - \kern-1.5in % - \color{blue}% - \rule{1in}{1in}% - \hss - }% - \vss - }% - \hrule - \hbox{\vrule\box\AtBeginShipoutBox\vrule}% - \hrule - }% -} -\usepackage{eso-pic} -\makeatletter -\@ifundefined{@EveryShipout@Init}{% - \typeout{Test skipped}% - \@@end -}{} -\@EveryShipout@Init -\let\@EveryShipout@Init\relax -\makeatother -\AddToShipoutPicture{% - \hspace{.52\paperwidth}% - \colorbox{cyan}{% - \rule{0mm}{\paperheight}% - \hspace{.48\paperwidth}% - }% -} -% \end{macrocode} -% Newer versions of class \xclass{memoir} emulate package -% \xpackage{crop} and prevents its loading. This is undone -% in next line for this test file. -% \begin{macrocode} -\expandafter\let\csname ver@crop.sty\endcsname\relax -\usepackage[color=red,cross,a4,center]{crop} -\begin{document} -\shipout\null -\shipout\box\csname voidb@x\endcsname -\section{Hello World} -\end{document} -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -2182,9 +1895,6 @@ Hello World % atbegshi.pdf & doc/latex/oberdiek/atbegshi.pdf\\ % atbegshi-example1.tex & doc/latex/oberdiek/atbegshi-example1.tex\\ % atbegshi-example2.tex & doc/latex/oberdiek/atbegshi-example2.tex\\ -% test/atbegshi-test1.tex & doc/latex/oberdiek/test/atbegshi-test1.tex\\ -% test/atbegshi-test2.tex & doc/latex/oberdiek/test/atbegshi-test2.tex\\ -% test/atbegshi-test3.tex & doc/latex/oberdiek/test/atbegshi-test3.tex\\ % atbegshi.dtx & source/latex/oberdiek/atbegshi.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/atbegshi.pdf b/macros/latex/contrib/oberdiek/atbegshi.pdf index 669658c566..3423553408 100644 Binary files a/macros/latex/contrib/oberdiek/atbegshi.pdf and b/macros/latex/contrib/oberdiek/atbegshi.pdf differ diff --git a/macros/latex/contrib/oberdiek/atenddvi.dtx b/macros/latex/contrib/oberdiek/atenddvi.dtx index 5ea70c80e5..b1b15af7ab 100644 --- a/macros/latex/contrib/oberdiek/atenddvi.dtx +++ b/macros/latex/contrib/oberdiek/atenddvi.dtx @@ -126,10 +126,6 @@ and the derived files \file{atenddvi.drv}{\from{atenddvi.dtx}{driver}}% \usedir{tex/latex/oberdiek}% \file{atenddvi.sty}{\from{atenddvi.dtx}{package}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{atenddvi.xml}{\from{atenddvi.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -166,21 +162,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{atenddvi.drv} % diff --git a/macros/latex/contrib/oberdiek/atenddvi.pdf b/macros/latex/contrib/oberdiek/atenddvi.pdf index 9d93a21ab7..24fbfaed17 100644 Binary files a/macros/latex/contrib/oberdiek/atenddvi.pdf and b/macros/latex/contrib/oberdiek/atenddvi.pdf differ diff --git a/macros/latex/contrib/oberdiek/atveryend.dtx b/macros/latex/contrib/oberdiek/atveryend.dtx index 7801120e07..a6e2ef52fa 100644 --- a/macros/latex/contrib/oberdiek/atveryend.dtx +++ b/macros/latex/contrib/oberdiek/atveryend.dtx @@ -63,7 +63,6 @@ % Installation: % TDS:tex/latex/oberdiek/atveryend.sty % TDS:doc/latex/oberdiek/atveryend.pdf -% TDS:doc/latex/oberdiek/test/atveryend-test1.tex % TDS:source/latex/oberdiek/atveryend.dtx % %<*ignore> @@ -131,10 +130,6 @@ and the derived files \file{atveryend.sty}{\from{atveryend.dtx}{package}}% % \usedir{doc/latex/oberdiek/test}% % \file{atveryend-test1.tex}{\from{atveryend.dtx}{test1}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{atveryend.xml}{\from{atveryend.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -171,21 +166,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{atveryend.drv} % @@ -1187,118 +1167,7 @@ and the derived files \AtVeryEnd@AtEnd% % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input atveryend.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -1347,7 +1216,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % atveryend.sty & tex/latex/oberdiek/atveryend.sty\\ % atveryend.pdf & doc/latex/oberdiek/atveryend.pdf\\ -% test/atveryend-test1.tex & doc/latex/oberdiek/test/atveryend-test1.tex\\ % atveryend.dtx & source/latex/oberdiek/atveryend.dtx\\ % \end{tabular}^^A % }^^A @@ -1478,13 +1346,13 @@ and the derived files % James Darrell McCauley, Jeff Goldberg: % \textit{The \xpackage{endfloat} package}; % 1995/10/11 v2.4i; -% \CTAN{macros/latex/contrib/endfloat/endfloat.pdf}. +% \CTANpkg{endfloat}. % % \bibitem{etoolbox} % Philipp Lehmann: % \textit{The \xpackage{etoolbox} package}; % 2009/08/06 v1.8; -% \CTAN{macros/latex/contrib/etoolbox/etoolbox.pdf}. +% \CTANpkg{etoolbox}. % % \bibitem{hyperref} % Sebastian Rahtz, Heiko Oberdiek: diff --git a/macros/latex/contrib/oberdiek/atveryend.pdf b/macros/latex/contrib/oberdiek/atveryend.pdf index e99485f48a..8a25fcdc9a 100644 Binary files a/macros/latex/contrib/oberdiek/atveryend.pdf and b/macros/latex/contrib/oberdiek/atveryend.pdf differ diff --git a/macros/latex/contrib/oberdiek/auxhook.dtx b/macros/latex/contrib/oberdiek/auxhook.dtx index ac5711ed25..6a9674bcca 100644 --- a/macros/latex/contrib/oberdiek/auxhook.dtx +++ b/macros/latex/contrib/oberdiek/auxhook.dtx @@ -126,10 +126,6 @@ and the derived files \file{auxhook.drv}{\from{auxhook.dtx}{driver}}% \usedir{tex/latex/oberdiek}% \file{auxhook.sty}{\from{auxhook.dtx}{package}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{auxhook.xml}{\from{auxhook.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -166,21 +162,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{auxhook.drv} % @@ -581,7 +562,7 @@ and the derived files % \bibitem{hypdestopt} % Heiko Oberdiek: \textit{The \xpackage{hypdestopt} package}; % 2006/05/30 v1.0; -% \CTAN{macros/latex/contrib/oberdiek/hypdestopt.pdf}. +% \CTANpkg{hypdestopt}. % % \bibitem{hyperref} % Sebastian Rahtz, Heiko Oberdiek: @@ -592,7 +573,7 @@ and the derived files % \bibitem{zref} % Heiko Oberdiek: \textit{The \xpackage{zref} package}; % 2006/05/25 v1.2; -% \CTAN{macros/latex/contrib/oberdiek/zref.pdf}. +% \CTANpkg{zref}. % % \end{thebibliography} % diff --git a/macros/latex/contrib/oberdiek/auxhook.pdf b/macros/latex/contrib/oberdiek/auxhook.pdf index b49a8bb86b..03097c28c7 100644 Binary files a/macros/latex/contrib/oberdiek/auxhook.pdf and b/macros/latex/contrib/oberdiek/auxhook.pdf differ diff --git a/macros/latex/contrib/oberdiek/bigintcalc.dtx b/macros/latex/contrib/oberdiek/bigintcalc.dtx index 004fd97c14..40fa56ed1d 100644 --- a/macros/latex/contrib/oberdiek/bigintcalc.dtx +++ b/macros/latex/contrib/oberdiek/bigintcalc.dtx @@ -67,9 +67,6 @@ % Installation: % TDS:tex/generic/oberdiek/bigintcalc.sty % TDS:doc/latex/oberdiek/bigintcalc.pdf -% TDS:doc/latex/oberdiek/test/bigintcalc-test1.tex -% TDS:doc/latex/oberdiek/test/bigintcalc-test2.tex -% TDS:doc/latex/oberdiek/test/bigintcalc-test3.tex % TDS:source/latex/oberdiek/bigintcalc.dtx % %<*ignore> @@ -143,10 +140,6 @@ and the derived files % \file{bigintcalc-test1.tex}{\from{bigintcalc.dtx}{test1}}% % \file{bigintcalc-test2.tex}{\from{bigintcalc.dtx}{test2,etex}}% % \file{bigintcalc-test3.tex}{\from{bigintcalc.dtx}{test2,noetex}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{bigintcalc.xml}{\from{bigintcalc.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -218,21 +211,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{bigintcalc.drv} % @@ -3395,932 +3373,7 @@ $ \BIC@Temp 9{18\or27\or36\or45\or54\or63\or72\or81}% % \begin{macrocode} % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input bigintcalc.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Macro tests} -% -% \subsubsection{Preamble with test macro definitions} -% -% \begin{macrocode} -%<*test2> -\NeedsTeXFormat{LaTeX2e} -\nofiles -\documentclass{article} -%\let\SavedNumexpr\numexpr -%\let\numexpr\UNDEFINED -\makeatletter -\chardef\BIC@TestMode=1 % -\makeatother -\usepackage{bigintcalc}[2016/05/16] -%\let\numexpr\SavedNumexpr -\usepackage{qstest} -\IncludeTests{*} -\LogTests{log}{*}{*} -\newcommand*{\TestSpaceAtEnd}[1]{% -% \let\SavedNumexpr\numexpr -% \let\numexpr\UNDEFINED - \edef\resultA{#1}% - \edef\resultB{#1 }% -% \let\numexpr\SavedNumexpr - \Expect*{\resultA\space}*{\resultB}% -} -\newcommand*{\TestResult}[2]{% -% \let\SavedNumexpr\numexpr -% \let\numexpr\UNDEFINED - \edef\result{#1}% -% \let\numexpr\SavedNumexpr - \Expect*{\result}{#2}% -} -\newcommand*{\TestResultTwoExpansions}[2]{% -%<*noetex> - \begingroup - \let\numexpr\UNDEFINED - \expandafter\expandafter\expandafter - \endgroup -% - \expandafter\expandafter\expandafter\Expect - \expandafter\expandafter\expandafter{#1}{#2}% -} -\newcount\TestCount -%\newcommand*{\TestArg}[1]{\numexpr#1\relax} -%\newcommand*{\TestArg}[1]{#1} -\newcommand*{\TestTeXDivide}[2]{% - \TestCount=\TestArg{#1}\relax - \divide\TestCount by \TestArg{#2}\relax - \Expect*{\bigintcalcDiv{#1}{#2}}*{\the\TestCount}% -} -\newcommand*{\Test}[2]{% - \TestResult{#1}{#2}% - \TestResultTwoExpansions{#1}{#2}% - \TestSpaceAtEnd{#1}% -} -\newcommand*{\TestExch}[2]{\Test{#2}{#1}} -\newcommand*{\TestInv}[2]{% - \Test{\bigintcalcInv{#1}}{#2}% -} -\newcommand*{\TestAbs}[2]{% - \Test{\bigintcalcAbs{#1}}{#2}% -} -\newcommand*{\TestSgn}[2]{% - \Test{\bigintcalcSgn{#1}}{#2}% -} -\newcommand*{\TestMin}[3]{% - \Test{\bigintcalcMin{#1}{#2}}{#3}% -} -\newcommand*{\TestMax}[3]{% - \Test{\bigintcalcMax{#1}{#2}}{#3}% -} -\newcommand*{\TestCmp}[3]{% - \Test{\bigintcalcCmp{#1}{#2}}{#3}% -} -\newcommand*{\TestOdd}[2]{% - \Test{\bigintcalcOdd{#1}}{#2}% - \edef\x{% - \noexpand\Test{% - \noexpand\BigIntCalcOdd - \bigintcalcAbs{#1}!% - }{#2}% - }% - \x -} -\newcommand*{\TestInc}[2]{% - \Test{\bigintcalcInc{#1}}{#2}% - \ifnum\bigintcalcSgn{#1}>-1 % - \edef\x{% - \noexpand\Test{% - \noexpand\BigIntCalcInc\bigintcalcNum{#1}!% - }{#2}% - }% - \x - \fi -} -\newcommand*{\TestDec}[2]{% - \Test{\bigintcalcDec{#1}}{#2}% - \ifnum\bigintcalcSgn{#1}>0 % - \edef\x{% - \noexpand\Test{% - \noexpand\BigIntCalcDec\bigintcalcNum{#1}!% - }{#2}% - }% - \x - \fi -} -\newcommand*{\TestAdd}[3]{% - \Test{\bigintcalcAdd{#1}{#2}}{#3}% - \ifnum\bigintcalcSgn{#1}>0 % - \ifnum\bigintcalcSgn{#2}> 0 % - \ifnum\bigintcalcCmp{#1}{#2}>0 % - \edef\x{% - \noexpand\Test{% - \noexpand\BigIntCalcAdd - \bigintcalcNum{#1}!\bigintcalcNum{#2}!% - }{#3}% - }% - \x - \else - \edef\x{% - \noexpand\Test{% - \noexpand\BigIntCalcAdd - \bigintcalcNum{#2}!\bigintcalcNum{#1}!% - }{#3}% - }% - \x - \fi - \fi - \fi -} -\newcommand*{\TestSub}[3]{% - \Test{\bigintcalcSub{#1}{#2}}{#3}% - \ifnum\bigintcalcSgn{#1}>0 % - \ifnum\bigintcalcSgn{#2}> 0 % - \ifnum\bigintcalcCmp{#1}{#2}>0 % - \edef\x{% - \noexpand\Test{% - \noexpand\BigIntCalcSub - \bigintcalcNum{#1}!\bigintcalcNum{#2}!% - }{#3}% - }% - \x - \fi - \fi - \fi -} -\newcommand*{\TestShl}[2]{% - \Test{\bigintcalcShl{#1}}{#2}% - \edef\x{% - \noexpand\Test{% - \noexpand\BigIntCalcShl\bigintcalcAbs{#1}!% - }{\bigintcalcAbs{#2}}% - }% - \x -} -\newcommand*{\TestShr}[2]{% - \Test{\bigintcalcShr{#1}}{#2}% - \edef\x{% - \noexpand\Test{% - \noexpand\BigIntCalcShr\bigintcalcAbs{#1}!% - }{\bigintcalcAbs{#2}}% - }% - \x -} -\newcommand*{\TestMul}[3]{% - \Test{\bigintcalcMul{#1}{#2}}{#3}% - \edef\x{% - \noexpand\Test{% - \noexpand\BigIntCalcMul - \bigintcalcAbs{#1}!\bigintcalcAbs{#2}!% - }{\bigintcalcAbs{#3}}% - }% - \x -} -\newcommand*{\TestSqr}[2]{% - \Test{\bigintcalcSqr{#1}}{#2}% -} -\newcommand*{\TestFac}[2]{% - \expandafter\TestExch\expandafter{% - \the\numexpr#2% - }{\bigintcalcFac{#1}}% -} -\newcommand*{\TestFacBig}[2]{% - \Test{\bigintcalcFac{#1}}{#2}% -} -\newcommand*{\TestPow}[3]{% - \Test{\bigintcalcPow{#1}{#2}}{#3}% -} -\newcommand*{\TestDiv}[3]{% - \Test{\bigintcalcDiv{#1}{#2}}{#3}% - \TestTeXDivide{#1}{#2}% -} -\newcommand*{\TestDivBig}[3]{% - \Test{\bigintcalcDiv{#1}{#2}}{#3}% - \edef\x{% - \noexpand\Test{% - \noexpand\BigIntCalcDiv\bigintcalcAbs{#1}!\bigintcalcAbs{#2}!% - }{\bigintcalcAbs{#3}}% - }% -} -\newcommand*{\TestMod}[3]{% - \Test{\bigintcalcMod{#1}{#2}}{#3}% - \ifcase\ifcase\bigintcalcSgn{#1} 0% - \or - \ifcase\bigintcalcSgn{#2} 1% - \or 0% - \else 1% - \fi - \else - \ifcase\bigintcalcSgn{#2} 1% - \or 1% - \else 0% - \fi - \fi\relax - \edef\x{% - \noexpand\Test{% - \noexpand\BigIntCalcMod - \bigintcalcAbs{#1}!\bigintcalcAbs{#2}!% - }{\bigintcalcAbs{#3}}% - }% - \x - \fi -} -% \end{macrocode} -% -% \subsubsection{Time} -% -% \begin{macrocode} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname pdfresettimer\endcsname\relax -\else - \makeatletter - \newcount\SummaryTime - \newcount\TestTime - \SummaryTime=\z@ - \newcommand*{\PrintTime}[2]{% - \typeout{% - [Time #1: \strip@pt\dimexpr\number#2sp\relax\space s]% - }% - }% - \newcommand*{\StartTime}[1]{% - \renewcommand*{\TimeDescription}{#1}% - \pdfresettimer - }% - \newcommand*{\TimeDescription}{}% - \newcommand*{\StopTime}{% - \TestTime=\pdfelapsedtime - \global\advance\SummaryTime\TestTime - \PrintTime\TimeDescription\TestTime - }% - \let\saved@qstest\qstest - \let\saved@endqstest\endqstest - \def\qstest#1#2{% - \saved@qstest{#1}{#2}% - \StartTime{#1}% - }% - \def\endqstest{% - \StopTime - \saved@endqstest - }% - \AtEndDocument{% - \PrintTime{summary}\SummaryTime - }% - \makeatother -\fi -% \end{macrocode} -% -% \subsubsection{Test sets} -% -% \begin{macrocode} -\makeatletter - -\begin{qstest}{inv}{inv}% - \TestInv{0}{0}% - \TestInv{1}{-1}% - \TestInv{-1}{1}% - \TestInv{10}{-10}% - \TestInv{-10}{10}% - \TestInv{2147483647}{-2147483647}% - \TestInv{-2147483647}{2147483647}% - \TestInv{12345678901234567890}{-12345678901234567890}% - \TestInv{-12345678901234567890}{12345678901234567890}% - \TestInv{ 0 }{0}% - \TestInv{ 1 }{-1}% - \TestInv{--1}{-1}% - \TestInv{\number\z@}{0}% - \TestInv{\ifx\relax\relax1\fi}{-1}% - \TestInv{\ifx\relax\relax-\fi\ifx234\else1\fi}{1}% -\end{qstest} - -\begin{qstest}{abs}{abs}% - \TestAbs{0}{0}% - \TestAbs{1}{1}% - \TestAbs{-1}{1}% - \TestAbs{10}{10}% - \TestAbs{-10}{10}% - \TestAbs{2147483647}{2147483647}% - \TestAbs{-2147483647}{2147483647}% - \TestAbs{12345678901234567890}{12345678901234567890}% - \TestAbs{-12345678901234567890}{12345678901234567890}% - \TestAbs{ 0 }{0}% - \TestAbs{ 1 }{1}% - \TestAbs{--1}{1}% - \TestAbs{-+-+1}{1}% - \TestAbs{00000000000}{0}% - \TestAbs{00000001000}{1000}% - \TestAbs{\ifx\relax\relax 0\else 1\fi}{0}% -\end{qstest} - -\begin{qstest}{sign}{sign}% - \TestSgn{0}{0}% - \TestSgn{1}{1}% - \TestSgn{-1}{-1}% - \TestSgn{10}{1}% - \TestSgn{-10}{-1}% - \TestSgn{2147483647}{1}% - \TestSgn{-2147483647}{-1}% - \TestSgn{12345678901234567890}{1}% - \TestSgn{-12345678901234567890}{-1}% - \TestSgn{ 0 }{0}% - \TestSgn{ 2 }{1}% - \TestSgn{ -2 }{-1}% - \TestSgn{--2}{1}% - \TestSgn{\number\z@}{0}% - \TestSgn{\number\@ne}{1}% - \TestSgn{\number\m@ne}{-1}% - \TestSgn{% - -+-+\number\z@\number\z@ - \iftrue1\fi\iftrue2\fi\iftrue3\fi - }{1}% -\end{qstest} - -\begin{qstest}{min}{min}% - \TestMin{0}{1}{0}% - \TestMin{1}{0}{0}% - \TestMin{-10}{-20}{-20}% - \TestMin{ 1 }{ 2 }{1}% - \TestMin{ 2 }{ 1 }{1}% - \TestMin{1}{1}{1}% - \TestMin{\number\z@}{\number\@ne}{0}% - \TestMin{\number\@ne}{\number\m@ne}{-1}% -\end{qstest} - -\begin{qstest}{max}{max}% - \TestMax{0}{1}{1}% - \TestMax{1}{0}{1}% - \TestMax{-10}{-20}{-10}% - \TestMax{ 1 }{ 2 }{2}% - \TestMax{ 2 }{ 1 }{2}% - \TestMax{1}{1}{1}% - \TestMax{\number\z@}{\number\@ne}{1}% - \TestMax{\number\@ne}{\number\m@ne}{1}% -\end{qstest} - -\begin{qstest}{cmp}{cmp}% - \TestCmp{0}{0}{0}% - \TestCmp{-21}{17}{-1}% - \TestCmp{3}{4}{-1}% - \TestCmp{-10}{-10}{0}% - \TestCmp{-10}{-11}{1}% - \TestCmp{100}{5}{1}% - \TestCmp{9}{10}{-1}% - \TestCmp{10}{9}{1}% - \TestCmp{ 3 }{ 3 }{0}% - \TestCmp{-9}{-10}{1}% - \TestCmp{-10}{-9}{-1}% - \TestCmp{-3}{-3}{0}% - \TestCmp{0}{-2}{1}% - \TestCmp{0}{2}{-1}% - \TestCmp{2}{0}{1}% - \TestCmp{-2}{0}{-1}% - \TestCmp{12}{11}{1}% - \TestCmp{11}{12}{-1}% - \TestCmp{2147483647}{-2147483647}{1}% - \TestCmp{-2147483647}{2147483647}{-1}% - \TestCmp{2147483647}{2147483647}{0}% - \TestCmp{\number\z@}{\number\@ne}{-1}% - \TestCmp{\number\@ne}{\number\m@ne}{1}% - \TestCmp{ 4 }{ 5 }{-1}% - \TestCmp{ -3 }{ -7 }{1}% -\end{qstest} - -\begin{qstest}{odd}{odd} -\tracingmacros=1 - \TestOdd{0}{0}% - \TestOdd{1}{1}% - \TestOdd{2}{0}% - \TestOdd{3}{1}% - \TestOdd{14}{0}% - \TestOdd{15}{1}% - \TestOdd{12345678901234567896}{0}% - \TestOdd{12345678901234567897}{1}% -\end{qstest} - -\begin{qstest}{inc}{inc}% - \TestInc{0}{1}% - \TestInc{1}{2}% - \TestInc{-1}{0}% - \TestInc{10}{11}% - \TestInc{-10}{-9}% - \TestInc{ 3 }{4}% - \TestInc{999}{1000}% - \TestInc{-1000}{-999}% - \TestInc{129}{130}% - \TestInc{2147483646}{2147483647}% - \TestInc{-2147483647}{-2147483646}% - \TestInc{12345678901234567890}{12345678901234567891}% - \TestInc{99999999999999999999}{100000000000000000000}% - \TestInc{-12345678901234567891}{-12345678901234567890}% - \TestInc{-100000000000000000000}{-99999999999999999999}% -\end{qstest} - -\begin{qstest}{dec}{dec}% - \TestDec{0}{-1}% - \TestDec{1}{0}% - \TestDec{-1}{-2}% - \TestDec{10}{9}% - \TestDec{-10}{-11}% - \TestDec{1000}{999}% - \TestDec{-999}{-1000}% - \TestDec{130}{129}% - \TestDec{2147483647}{2147483646}% - \TestDec{-2147483646}{-2147483647}% - \TestDec{12345678901234567891}{12345678901234567890}% - \TestDec{100000000000000000000}{99999999999999999999}% - \TestDec{-12345678901234567890}{-12345678901234567891}% - \TestDec{-99999999999999999999}{-100000000000000000000}% -\end{qstest} - -\begin{qstest}{add}{add}% - \TestAdd{0}{0}{0}% - \TestAdd{1}{0}{1}% - \TestAdd{0}{1}{1}% - \TestAdd{1}{2}{3}% - \TestAdd{-1}{-1}{-2}% - \TestAdd{2147483646}{1}{2147483647}% - \TestAdd{-2147483647}{2147483647}{0}% - \TestAdd{20}{-5}{15}% - \TestAdd{-4}{-1}{-5}% - \TestAdd{-1}{-4}{-5}% - \TestAdd{-4}{1}{-3}% - \TestAdd{-1}{4}{3}% - \TestAdd{4}{-1}{3}% - \TestAdd{1}{-4}{-3}% - \TestAdd{-4}{-1}{-5}% - \TestAdd{-1}{-4}{-5}% - \TestAdd{ -4 }{ -1 }{-5}% - \TestAdd{ -1 }{ -4 }{-5}% - \TestAdd{ -4 }{ 1 }{-3}% - \TestAdd{ -1 }{ 4 }{3}% - \TestAdd{ 4 }{ -1 }{3}% - \TestAdd{ 1 }{ -4 }{-3}% - \TestAdd{ -4 }{ -1 }{-5}% - \TestAdd{ -1 }{ -4 }{-5}% - \TestAdd{876543210}{111111111}{987654321}% - \TestAdd{999999999}{2}{1000000001}% -\end{qstest} - -\begin{qstest}{sub}{sub} - \TestSub{0}{0}{0}% - \TestSub{1}{0}{1}% - \TestSub{1}{2}{-1}% - \TestSub{-1}{-1}{0}% - \TestSub{2147483646}{-1}{2147483647}% - \TestSub{-2147483647}{-2147483647}{0}% - \TestSub{-4}{-1}{-3}% - \TestSub{-1}{-4}{3}% - \TestSub{-4}{1}{-5}% - \TestSub{-1}{4}{-5}% - \TestSub{4}{-1}{5}% - \TestSub{1}{-4}{5}% - \TestSub{-4}{-1}{-3}% - \TestSub{-1}{-4}{3}% - \TestSub{ -4 }{ -1 }{-3}% - \TestSub{ -1 }{ -4 }{3}% - \TestSub{ -4 }{ 1 }{-5}% - \TestSub{ -1 }{ 4 }{-5}% - \TestSub{ 4 }{ -1 }{5}% - \TestSub{ 1 }{ -4 }{5}% - \TestSub{ -4 }{ -1 }{-3}% - \TestSub{ -1 }{ -4 }{3}% - \TestSub{1000000000}{2}{999999998}% - \TestSub{987654321}{111111111}{876543210}% -\end{qstest} - -\begin{qstest}{shl}{shl} - \TestShl{0}{0}% - \TestShl{1}{2}% - \TestShl{2}{4}% - \TestShl{5621}{11242}% - \TestShl{1073741823}{2147483646}% -\end{qstest} - -\begin{qstest}{shr}{shr} - \TestShr{0}{0}% - \TestShr{1}{0}% - \TestShr{2}{1}% - \TestShr{3}{1}% - \TestShr{4}{2}% - \TestShr{5}{2}% - \TestShr{6}{3}% - \TestShr{7}{3}% - \TestShr{8}{4}% - \TestShr{9}{4}% - \TestShr{10}{5}% - \TestShr{11}{5}% - \TestShr{12}{6}% - \TestShr{13}{6}% - \TestShr{14}{7}% - \TestShr{15}{7}% - \TestShr{16}{8}% - \TestShr{17}{8}% - \TestShr{18}{9}% - \TestShr{19}{9}% - \TestShr{20}{10}% - \TestShr{21}{10}% - \TestShr{22}{11}% - \TestShr{11241}{5620}% - \TestShr{73054202}{36527101}% - \TestShr{2147483646}{1073741823}% -\end{qstest} - -\begin{qstest}{mul}{mul} - \TestMul{0}{0}{0}% - \TestMul{1}{0}{0}% - \TestMul{0}{1}{0}% - \TestMul{1}{1}{1}% - \TestMul{3}{1}{3}% - \TestMul{1}{-3}{-3}% - \TestMul{-4}{-5}{20}% - \TestMul{3}{7}{21}% - \TestMul{7}{3}{21}% - \TestMul{3}{-7}{-21}% - \TestMul{7}{-3}{-21}% - \TestMul{-3}{7}{-21}% - \TestMul{-7}{3}{-21}% - \TestMul{-3}{-7}{21}% - \TestMul{-7}{-3}{21}% - \TestMul{12}{11}{132}% - \TestMul{999}{333}{332667}% - \TestMul{1000}{4321}{4321000}% - \TestMul{12345}{173955}{2147474475}% - \TestMul{1073741823}{2}{2147483646}% - \TestMul{2}{1073741823}{2147483646}% - \TestMul{-1073741823}{2}{-2147483646}% - \TestMul{2}{-1073741823}{-2147483646}% - \TestMul{6706022400}{13}{87178291200}% -\end{qstest} - -\begin{qstest}{sqr}{sqr} - \TestSqr{0}{0}% - \TestSqr{1}{1}% - \TestSqr{2}{4}% - \TestSqr{3}{9}% - \TestSqr{4}{16}% - \TestSqr{9}{81}% - \TestSqr{10}{100}% - \TestSqr{46340}{2147395600}% - \TestSqr{-1}{1}% - \TestSqr{-2}{4}% - \TestSqr{-46340}{2147395600}% -\end{qstest} - -\begin{qstest}{fac}{fac} - \TestFac{0}{1}% - \TestFac{1}{1}% - \TestFac{2}{2}% - \TestFac{3}{2*3}% - \TestFac{4}{2*3*4}% - \TestFac{5}{2*3*4*5}% - \TestFac{6}{2*3*4*5*6}% - \TestFac{7}{2*3*4*5*6*7}% - \TestFac{8}{2*3*4*5*6*7*8}% - \TestFac{9}{2*3*4*5*6*7*8*9}% - \TestFac{10}{2*3*4*5*6*7*8*9*10}% - \TestFac{11}{2*3*4*5*6*7*8*9*10*11}% - \TestFac{12}{2*3*4*5*6*7*8*9*10*11*12}% - \TestFacBig{13}{6227020800}% - \TestFacBig{14}{87178291200}% - \TestFacBig{15}{1307674368000}% - \TestFacBig{16}{20922789888000}% - \TestFacBig{17}{355687428096000}% - \TestFacBig{18}{6402373705728000}% - \TestFacBig{19}{121645100408832000}% - \TestFacBig{20}{2432902008176640000}% - \TestFacBig{21}{51090942171709440000}% - \TestFacBig{22}{1124000727777607680000}% -\end{qstest} - -\begin{qstest}{pow}{pow} - \TestPow{-2}{0}{1}% - \TestPow{-1}{0}{1}% - \TestPow{0}{0}{1}% - \TestPow{1}{0}{1}% - \TestPow{2}{0}{1}% - \TestPow{3}{0}{1}% - \TestPow{-2}{1}{-2}% - \TestPow{-1}{1}{-1}% - \TestPow{1}{1}{1}% - \TestPow{2}{1}{2}% - \TestPow{3}{1}{3}% - \TestPow{-2}{2}{4}% - \TestPow{-1}{2}{1}% - \TestPow{0}{2}{0}% - \TestPow{1}{2}{1}% - \TestPow{2}{2}{4}% - \TestPow{3}{2}{9}% - \TestPow{0}{1}{0}% - \TestPow{1}{-2}{1}% - \TestPow{1}{-1}{1}% - \TestPow{-1}{-2}{1}% - \TestPow{-1}{-1}{-1}% - \TestPow{-1}{3}{-1}% - \TestPow{-1}{4}{1}% - \TestPow{-2}{-1}{0}% - \TestPow{-2}{-2}{0}% - \TestPow{2}{3}{8}% - \TestPow{2}{4}{16}% - \TestPow{2}{5}{32}% - \TestPow{2}{6}{64}% - \TestPow{2}{7}{128}% - \TestPow{2}{8}{256}% - \TestPow{2}{9}{512}% - \TestPow{2}{10}{1024}% - \TestPow{-2}{3}{-8}% - \TestPow{-2}{4}{16}% - \TestPow{-2}{5}{-32}% - \TestPow{-2}{6}{64}% - \TestPow{-2}{7}{-128}% - \TestPow{-2}{8}{256}% - \TestPow{-2}{9}{-512}% - \TestPow{-2}{10}{1024}% - \TestPow{3}{3}{27}% - \TestPow{3}{4}{81}% - \TestPow{3}{5}{243}% - \TestPow{-3}{3}{-27}% - \TestPow{-3}{4}{81}% - \TestPow{-3}{5}{-243}% - \TestPow{2}{30}{1073741824}% - \TestPow{-3}{19}{-1162261467}% - \TestPow{5}{13}{1220703125}% - \TestPow{-7}{11}{-1977326743}% -\end{qstest} - -\begin{qstest}{div}{div} - \TestDiv{1}{1}{1}% - \TestDiv{2}{1}{2}% - \TestDiv{-2}{1}{-2}% - \TestDiv{2}{-1}{-2}% - \TestDiv{-2}{-1}{2}% - \TestDiv{15}{2}{7}% - \TestDiv{-16}{2}{-8}% - \TestDiv{1}{2}{0}% - \TestDiv{1}{3}{0}% - \TestDiv{2}{3}{0}% - \TestDiv{-2}{3}{0}% - \TestDiv{2}{-3}{0}% - \TestDiv{-2}{-3}{0}% - \TestDiv{13}{3}{4}% - \TestDiv{-13}{-3}{4}% - \TestDiv{-13}{3}{-4}% - \TestDiv{-6}{5}{-1}% - \TestDiv{-5}{5}{-1}% - \TestDiv{-4}{5}{0}% - \TestDiv{-3}{5}{0}% - \TestDiv{-2}{5}{0}% - \TestDiv{-1}{5}{0}% - \TestDiv{0}{5}{0}% - \TestDiv{1}{5}{0}% - \TestDiv{2}{5}{0}% - \TestDiv{3}{5}{0}% - \TestDiv{4}{5}{0}% - \TestDiv{5}{5}{1}% - \TestDiv{6}{5}{1}% - \TestDiv{-5}{4}{-1}% - \TestDiv{-4}{4}{-1}% - \TestDiv{-3}{4}{0}% - \TestDiv{-2}{4}{0}% - \TestDiv{-1}{4}{0}% - \TestDiv{0}{4}{0}% - \TestDiv{1}{4}{0}% - \TestDiv{2}{4}{0}% - \TestDiv{3}{4}{0}% - \TestDiv{4}{4}{1}% - \TestDiv{5}{4}{1}% - \TestDiv{12345}{678}{18}% - \TestDiv{32372}{5952}{5}% - \TestDiv{284271294}{18162}{15651}% - \TestDiv{217652429}{12561}{17327}% - \TestDiv{462028434}{5439}{84947}% - \TestDiv{2147483647}{1000}{2147483}% - \TestDiv{2147483647}{-1000}{-2147483}% - \TestDiv{-2147483647}{1000}{-2147483}% - \TestDiv{-2147483647}{-1000}{2147483}% - \TestDiv{0}{3}{0}% - \TestDiv{1}{3}{0}% - \TestDiv{2}{3}{0}% - \TestDiv{3}{3}{1}% - \TestDiv{4}{3}{1}% - \TestDiv{5}{3}{1}% - \TestDiv{6}{3}{2}% - \TestDiv{7}{3}{2}% - \TestDiv{8}{3}{2}% - \TestDiv{9}{3}{3}% - \TestDiv{10}{3}{3}% - \TestDiv{11}{3}{3}% - \TestDiv{12}{3}{4}% - \TestDiv{13}{3}{4}% - \TestDiv{14}{3}{4}% - \TestDiv{15}{3}{5}% - \TestDiv{16}{3}{5}% - \TestDiv{17}{3}{5}% - \TestDiv{18}{3}{6}% - \TestDiv{19}{3}{6}% - \TestDiv{20}{3}{6}% - \TestDiv{21}{3}{7}% - \TestDiv{22}{3}{7}% - \TestDiv{23}{3}{7}% - \TestDiv{24}{3}{8}% - \TestDiv{25}{3}{8}% - \TestDiv{26}{3}{8}% - \TestDiv{27}{3}{9}% - \TestDiv{28}{3}{9}% - \TestDiv{29}{3}{9}% - \TestDiv{30}{3}{10}% - \TestDiv{31}{3}{10}% - \TestDivBig{17363436332507}{24702}{702916214}% -\end{qstest} - -\begin{qstest}{mod}{mod} - \TestMod{-6}{5}{4}% - \TestMod{-5}{5}{0}% - \TestMod{-4}{5}{1}% - \TestMod{-3}{5}{2}% - \TestMod{-2}{5}{3}% - \TestMod{-1}{5}{4}% - \TestMod{0}{5}{0}% - \TestMod{1}{5}{1}% - \TestMod{2}{5}{2}% - \TestMod{3}{5}{3}% - \TestMod{4}{5}{4}% - \TestMod{5}{5}{0}% - \TestMod{6}{5}{1}% - \TestMod{-5}{4}{3}% - \TestMod{-4}{4}{0}% - \TestMod{-3}{4}{1}% - \TestMod{-2}{4}{2}% - \TestMod{-1}{4}{3}% - \TestMod{0}{4}{0}% - \TestMod{1}{4}{1}% - \TestMod{2}{4}{2}% - \TestMod{3}{4}{3}% - \TestMod{4}{4}{0}% - \TestMod{5}{4}{1}% - \TestMod{-6}{-5}{-1}% - \TestMod{-5}{-5}{0}% - \TestMod{-4}{-5}{-4}% - \TestMod{-3}{-5}{-3}% - \TestMod{-2}{-5}{-2}% - \TestMod{-1}{-5}{-1}% - \TestMod{0}{-5}{0}% - \TestMod{1}{-5}{-4}% - \TestMod{2}{-5}{-3}% - \TestMod{3}{-5}{-2}% - \TestMod{4}{-5}{-1}% - \TestMod{5}{-5}{0}% - \TestMod{6}{-5}{-4}% - \TestMod{-5}{-4}{-1}% - \TestMod{-4}{-4}{0}% - \TestMod{-3}{-4}{-3}% - \TestMod{-2}{-4}{-2}% - \TestMod{-1}{-4}{-1}% - \TestMod{0}{-4}{0}% - \TestMod{1}{-4}{-3}% - \TestMod{2}{-4}{-2}% - \TestMod{3}{-4}{-1}% - \TestMod{4}{-4}{0}% - \TestMod{5}{-4}{-3}% - \TestMod{2147483647}{1000}{647}% - \TestMod{2147483647}{-1000}{-353}% - \TestMod{-2147483647}{1000}{353}% - \TestMod{-2147483647}{-1000}{-647}% - \TestMod{ 0 }{ 4 }{0}% - \TestMod{ 1 }{ 4 }{1}% - \TestMod{ -1 }{ 4 }{3}% - \TestMod{ 0 }{ -4 }{0}% - \TestMod{ 1 }{ -4 }{-3}% - \TestMod{ -1 }{ -4 }{-1}% - \TestMod{18362}{25}{12}% -\end{qstest} - -\newcommand*{\TestError}[2]{% - \begingroup - \expandafter\def\csname BigIntCalcError:#1\endcsname{}% - \Expect*{#2}{0}% - \expandafter\def\csname BigIntCalcError:#1\endcsname{ERROR}% - \Expect*{#2}{0ERROR}% - \endgroup -} -\begin{qstest}{error}{error} - \TestError{FacNegative}{\bigintcalcFac{-1}}% - \TestError{FacNegative}{\bigintcalcFac{-2147483647}}% - \TestError{DivisionByZero}{\bigintcalcPow{0}{-1}}% - \TestError{DivisionByZero}{\bigintcalcDiv{1}{0}}% - \TestError{DivisionByZero}{\bigintcalcMod{1}{0}}% -\end{qstest} - -\begin{document} -\end{document} -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -4369,9 +3422,6 @@ $ \BIC@Temp 9{18\or27\or36\or45\or54\or63\or72\or81}% % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % bigintcalc.sty & tex/generic/oberdiek/bigintcalc.sty\\ % bigintcalc.pdf & doc/latex/oberdiek/bigintcalc.pdf\\ -% test/bigintcalc-test1.tex & doc/latex/oberdiek/test/bigintcalc-test1.tex\\ -% test/bigintcalc-test2.tex & doc/latex/oberdiek/test/bigintcalc-test2.tex\\ -% test/bigintcalc-test3.tex & doc/latex/oberdiek/test/bigintcalc-test3.tex\\ % bigintcalc.dtx & source/latex/oberdiek/bigintcalc.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/bigintcalc.pdf b/macros/latex/contrib/oberdiek/bigintcalc.pdf index 2b05dfda17..35efdbd674 100644 Binary files a/macros/latex/contrib/oberdiek/bigintcalc.pdf and b/macros/latex/contrib/oberdiek/bigintcalc.pdf differ diff --git a/macros/latex/contrib/oberdiek/bitset.dtx b/macros/latex/contrib/oberdiek/bitset.dtx index d5808e0a27..dbb7c1ba2a 100644 --- a/macros/latex/contrib/oberdiek/bitset.dtx +++ b/macros/latex/contrib/oberdiek/bitset.dtx @@ -66,9 +66,6 @@ % Installation: % TDS:tex/generic/oberdiek/bitset.sty % TDS:doc/latex/oberdiek/bitset.pdf -% TDS:doc/latex/oberdiek/test/bitset-test1.tex -% TDS:doc/latex/oberdiek/test/bitset-test2.tex -% TDS:doc/latex/oberdiek/test/bitset-test3.tex % TDS:source/latex/oberdiek/bitset.dtx % %<*ignore> @@ -141,10 +138,6 @@ and the derived files % \file{bitset-test1.tex}{\from{bitset.dtx}{test1}}% % \file{bitset-test2.tex}{\from{bitset.dtx}{test2,etex}}% % \file{bitset-test3.tex}{\from{bitset.dtx}{test2,noetex}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{bitset.xml}{\from{bitset.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -188,21 +181,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{bitset.drv} % @@ -2799,1223 +2777,7 @@ and the derived files \BitSet@AtEnd% % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input bitset.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Macro tests} -% -% \subsubsection{Preamble} -% -% \begin{macrocode} -%<*test2> -\NeedsTeXFormat{LaTeX2e} -\nofiles -\documentclass{article} -\makeatletter -%<*noetex> -\let\SavedNumexpr\numexpr -\let\SavedIfcsname\ifcsname -\let\SavedCurrentgrouplevel\currentgrouplevel -\def\ETeXDisable{% - \let\ifcsname\@undefined - \let\numexpr\@undefined - \let\currentgrouplevel\@undefined -} -\ETeXDisable -% -\makeatletter -\chardef\BitSet@TestMode=1 % -\makeatother -\usepackage{bitset}[2016/05/16] -%<*noetex> -\def\ETeXEnable{% - \let\numexpr\SavedNumexpr - \let\ifcsname\SavedIfcsname - \let\currentgrouplevel\SavedCurrentgrouplevel -} -\ETeXEnable -% -\usepackage{qstest} -\IncludeTests{*} -\LogTests{log}{*}{*} -\makeatletter -% \end{macrocode} -% -% \subsubsection{Time} -% -% \begin{macrocode} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname pdfresettimer\endcsname\relax -\else - \newcount\SummaryTime - \newcount\TestTime - \SummaryTime=\z@ - \newcommand*{\PrintTime}[2]{% - \typeout{% - [Time #1: \strip@pt\dimexpr\number#2sp\relax\space s]% - }% - }% - \newcommand*{\StartTime}[1]{% - \renewcommand*{\TimeDescription}{#1}% - \pdfresettimer - }% - \newcommand*{\TimeDescription}{}% - \newcommand*{\StopTime}{% - \TestTime=\pdfelapsedtime - \global\advance\SummaryTime\TestTime - \PrintTime\TimeDescription\TestTime - }% - \let\saved@qstest\qstest - \let\saved@endqstest\endqstest - \def\qstest#1#2{% - \saved@qstest{#1}{#2}% - \StartTime{#1}% - }% - \def\endqstest{% - \StopTime - \saved@endqstest - }% - \AtEndDocument{% - \PrintTime{summary}\SummaryTime - }% -\fi -% \end{macrocode} -% -% \subsubsection{Detection of unwanted space} -% -% \begin{macrocode} -\let\orig@qstest\qstest -\let\orig@endqstest\endqstest -\def\qstest#1#2{% - \orig@qstest{#1}{#2}% - \setbox0\hbox\bgroup\begingroup\ignorespaces -} -\def\endqstest{% - \endgroup\egroup - \Expect*{\the\wd0}{0.0pt}% - \orig@endqstest -} -% \end{macrocode} -% -% \subsubsection{Test macros} -% -% \begin{macrocode} -\newcounter{Test} - -\def\TestError#1#2{% - \begingroup - \setcounter{Test}{0}% - \sbox0{% - \def\@PackageError##1##2##3{% - \stepcounter{Test}% - \begingroup - \let\MessageBreak\relax -%<*noetex> - \ETeXEnable -% - \Expect{##1}{bitset}% - \Expect*{##2}*{#1}% - \endgroup - }% -%<*noetex> - \ETeXDisable -% - #2% - }% - \Expect*{\theTest}{1}% - \Expect*{\the\wd0}{0.0pt}% - \endgroup -} - -\def\TestErrorNegativeIndex#1#2{% - \TestError{Invalid negative index (#1)}{#2}% -} - -\def\TestGetterUndefined#1{% - \CheckUndef{dummy}% - \expandafter\expandafter\expandafter\Expect - \expandafter\expandafter\expandafter{#1{dummy}}{0}% -} - -\def\ExpectBitSet#1#2{% - \expandafter\expandafter\expandafter\Expect - \expandafter\expandafter\expandafter - {\csname BS@#1\endcsname}*{#2}% -} -\def\Check#1#2{% - \ExpectBitSet{#1}{#2}% -} -\def\CheckUndef#1{% - \begingroup - \Expect*{% - \expandafter - \ifx\csname BS@#1\endcsname\relax true\else false\fi - }{true}% - \endgroup -} -\def\RevCheck#1#2{% - \ExpectBitSet{#1}{\Reverse#2!!}% -} -\def\Set#1#2{% - \expandafter\def\csname BS@#1\endcsname{#2}% -} -\def\RevSet#1#2{% - \expandafter\edef\csname BS@#1\endcsname{% - \Reverse#2!!% - }% -} -\def\Reverse#1#2!#3!{% - \ifx\\#2\\% - #1#3% - \expandafter\@gobble - \else - \expandafter\@firstofone - \fi - {\Reverse#2!#1#3!}% -} -% \end{macrocode} -% -% \subsubsection{Test sets} -% -% \begin{macrocode} -\begin{qstest}{Let}{Let} - \CheckUndef{abc}% - \CheckUndef{xyz}% - \bitsetLet{xyz}{abc}% - \CheckUndef{abc}% - \Check{xyz}{0}% - \Set{abc}{1}% - \Check{abc}{1}% - \Check{xyz}{0}% - \bitsetLet{xyz}{abc}% - \Check{abc}{1}% - \Check{xyz}{1}% - \Set{xyz}{11}% - \Check{abc}{1}% - \Check{xyz}{11}% -\end{qstest} - -\begin{qstest}{Reset}{Reset} - \bitsetReset{xyz}% - \Check{xyz}{0}% - \bitsetReset{abc}% - \Check{abc}{0}% - \Set{abc}{10101}% - \bitsetReset{abc}% - \Check{abc}{0}% -\end{qstest} - -\begin{qstest}{Get/Query}{Get/Query} - \expandafter\expandafter\expandafter\Expect - \expandafter\expandafter\expandafter{% - \bitsetGet{dummy}{0}% - }{0}% - \begingroup - \expandafter\def\csname BitSetError:NegativeIndex\endcsname{}% - \Set{abc}{1}% - \Expect*{\bitsetQuery{abc}{-1}{true}{false}}{false}% - \endgroup - \def\Test#1#2#3{% - \Set{abc}{#1}% - \expandafter\expandafter\expandafter\Expect - \expandafter\expandafter\expandafter{\bitsetGet{abc}{#2}}{#3}% - \Expect*{\bitsetQuery{abc}{#2}{true}{false}}% - *{\ifcase#3 false\or true\else error\fi}% - }% - \Test{1}{100}{0}% - \Test{0}{0}{0}% - \Test{1}{0}{1}% - \Test{11}{1}{1}% - \Test{111}{1}{1}% - \Test{101}{1}{0}% - \Test{101}{2}{1}% - \Test{10100110011}{10}{1}% -\end{qstest} - -\begin{qstest}{Size}{Size} - \TestGetterUndefined\bitsetSize - \def\Test#1#2{% - \Set{abc}{#1}% - \expandafter\expandafter\expandafter\Expect - \expandafter\expandafter\expandafter{\bitsetSize{abc}}{#2}% - }% - \Test{0}{0}% - \Test{1}{1}% - \Test{00}{0}% - \Test{0000000}{0}% - \Test{10}{1}% - \Test{01}{2}% - \Test{11}{2}% - \Test{010}{2}% - \Test{011}{3}% - \Test{100110011}{9}% - \Test{0000011111000001111100000}{20}% - \Test{000000000000000000000000011111111111111111111}{45}% -\end{qstest} - -\begin{qstest}{Cardinality}{Cardinality} - \TestGetterUndefined\bitsetCardinality - \def\Test#1#2{% - \Set{abc}{#1}% - \expandafter\expandafter\expandafter\Expect - \expandafter\expandafter\expandafter{% - \bitsetCardinality{abc}% - }{#2}% - }% - \Test{0}{0}% - \Test{1}{1}% - \Test{00}{0}% - \Test{0000000}{0}% - \Test{10}{1}% - \Test{01}{1}% - \Test{11}{2}% - \Test{010}{1}% - \Test{011}{2}% - \Test{100110011}{5}% - \Test{0000011111000001111100000}{10}% - \Test{000000000000000000000000011111111111111111111}{20}% -\end{qstest} - -\begin{qstest}{NextClearBit/NextSetBit}{NextClearBit/NextSetBit} - \def\Test#1#2{% - \expandafter\expandafter\expandafter\Expect - \expandafter\expandafter\expandafter{% - \TestOp{abc}{#1}% - }{#2}% - }% - \def\Clear{\let\TestOp\bitsetNextClearBit}% - \def\Set{\let\TestOp\bitsetNextSetBit}% - \begingroup - \catcode`\:=11 % - \bitsetSetBin{abc}{1}% - \Clear - \Test{-1}{1\BitSetError:NegativeIndex}% - \Set - \Test{-1}{0\BitSetError:NegativeIndex}% - \endgroup - \let\BS@abc\@undefined - \Clear - \Test{0}{0}% - \Test{1}{1}% - \Test{2}{2}% - \Test{100}{100}% - \Set - \Test{0}{-1}% - \Test{1}{-1}% - \Test{100}{-1}% - \bitsetReset{abc}% - \Clear - \Test{0}{0}% - \Test{1}{1}% - \Test{2}{2}% - \Test{100}{100}% - \Set - \Test{0}{-1}% - \Test{1}{-1}% - \Test{100}{-1}% - \bitsetSetBin{abc}{1}% - \Clear - \Test{0}{1}% - \Test{1}{1}% - \Test{2}{2}% - \Test{100}{100}% - \Set - \Test{0}{0}% - \Test{1}{-1}% - \Test{100}{-1}% - \bitsetSetBin{abc}{111000111000111000111}% - \Clear - \Test{0}{3}% - \Test{1}{3}% - \Test{2}{3}% - \Test{3}{3}% - \Test{4}{4}% - \Test{5}{5}% - \Test{6}{9}% - \Test{7}{9}% - \Test{8}{9}% - \Test{9}{9}% - \Test{10}{10}% - \Test{11}{11}% - \Test{12}{15}% - \Test{13}{15}% - \Test{14}{15}% - \Test{15}{15}% - \Test{16}{16}% - \Test{17}{17}% - \Test{18}{21}% - \Test{19}{21}% - \Test{20}{21}% - \Test{21}{21}% - \Test{22}{22}% - \Test{100}{100}% - \Set - \Test{0}{0}% - \Test{1}{1}% - \Test{2}{2}% - \Test{3}{6}% - \Test{4}{6}% - \Test{5}{6}% - \Test{6}{6}% - \Test{7}{7}% - \Test{8}{8}% - \Test{9}{12}% - \Test{10}{12}% - \Test{11}{12}% - \Test{12}{12}% - \Test{13}{13}% - \Test{14}{14}% - \Test{15}{18}% - \Test{16}{18}% - \Test{17}{18}% - \Test{18}{18}% - \Test{19}{19}% - \Test{20}{20}% - \Test{21}{-1}% - \Test{22}{-1}% - \Test{100}{-1}% - \bitsetSetBin{abc}{1111111}% - \Clear - \Test{6}{7}% - \Test{7}{7}% - \Test{8}{8}% - \Test{100}{100}% - \Set - \Test{6}{6}% - \Test{7}{-1}% - \Test{8}{-1}% - \Test{100}{-1}% - \bitsetSetBin{abc}{11111111}% - \Clear - \Test{7}{8}% - \Test{8}{8}% - \Test{9}{9}% - \Test{100}{100}% - \Set - \Test{7}{7}% - \Test{8}{-1}% - \Test{9}{-1}% - \Test{100}{-1}% - \bitsetSetBin{abc}{111111111}% - \Clear - \Test{8}{9}% - \Test{9}{9}% - \Test{10}{10}% - \Test{100}{100}% - \Set - \Test{8}{8}% - \Test{9}{-1}% - \Test{10}{-1}% - \Test{100}{-1}% - \bitsetSetBin{abc}{1111111111}% - \Clear - \Test{9}{10}% - \Test{10}{10}% - \Test{11}{11}% - \Test{100}{100}% - \Set - \Test{9}{9}% - \Test{10}{-1}% - \Test{11}{-1}% - \Test{100}{-1}% -\end{qstest} - -\begin{qstest}{GetSetBitList}{GetSetBitList} - \let\BS@abc\@undefined - \expandafter\expandafter\expandafter\Expect - \expandafter\expandafter\expandafter{% - \bitsetGetSetBitList{abc}% - }{}% - \def\Test#1#2{% - \bitsetSetBin{abc}{#1}% - \expandafter\expandafter\expandafter\Expect - \expandafter\expandafter\expandafter{% - \bitsetGetSetBitList{abc}% - }{#2}% - }% - \Test{0}{}% - \Test{1}{0}% - \Test{10}{1}% - \Test{11}{0,1}% - \Test{10110100}{2,4,5,7}% - \Test{101101001010011}{0,1,4,6,9,11,12,14}% -\end{qstest} - -\begin{qstest}{GetDec}{GetDec} - \TestGetterUndefined\bitsetGetDec - \def\Test#1#2{% - \RevSet{abc}{#1}% -%<*noetex> - \begingroup\expandafter\expandafter\expandafter\endgroup -% - \expandafter\expandafter\expandafter\Expect - \expandafter\expandafter\expandafter{% - \bitsetGetDec{abc}% - }{#2}% - }% - \Test{0}{0}% - \Test{1}{1}% - \Test{10}{2}% - \Test{11}{3}% - \Test{100}{4}% - \Test{101}{5}% - \Test{110}{6}% - \Test{111}{7}% - \Test{1000}{8}% - \Test{000111}{7}% - \Test{1111111111111111% - 111111111111111}{2147483647}% - \Test{0001111111111111111% - 111111111111111}{2147483647}% - \Test{1000000000000000% - 0000000000000000}{2147483648}% - \Test{1000000000000000% - 00000000000000000}{4294967296}% - \Test{0001000000000000000% - 00000000000000000}{4294967296}% - \Test{1100000000000000% - 00000000000000011}{6442450947}% -\end{qstest} - -\begin{qstest}{Clear}{Clear} - \def\Test#1#2#3{% - \RevSet{abc}{#1}% - \bitsetClear{abc}{#2}% - \Expect*{\BS@abc}*{\Reverse#3!!}% - }% - \bitsetClear{abc}{2}% - \RevCheck{abc}{0}% - \TestErrorNegativeIndex{-1}{\bitsetClear{abc}{-1}}% - \RevCheck{abc}{0}% - \Test{0}{0}{0}% - \Test{1}{0}{0}% - \Test{111}{1}{101}% - \Test{111}{30}{111}% - \Test{0000111}{5}{0000111}% 111 would also be ok - \Test{10000111}{5}{10000111}% - \Test{1001001}{3}{1000001}% -\end{qstest} - -\begin{qstest}{Set}{Set} - \def\Test#1#2#3{% - \RevSet{abc}{#1}% - \bitsetSet{abc}{#2}% - \Expect*{\BS@abc}*{\Reverse#3!!}% - }% - \bitsetSet{abc}{2}% - \RevCheck{abc}{100}% - \TestErrorNegativeIndex{-1}{\bitsetSet{abc}{-1}}% - \RevCheck{abc}{100}% - \Test{0}{0}{1}% - \Test{1}{0}{1}% - \Test{100}{1}{110}% - \Test{111}{1}{111}% - \Test{11}{1}{11}% - \Test{11}{2}{111}% - \Test{11}{3}{1011}% - \Test{111}{10}{10000000111}% - \Test{0000111}{5}{0100111}% 100111 would also be ok - \Test{10000111}{5}{10100111}% - \Test{1000001}{3}{1001001}% - \Test{1001001}{3}{1001001}% -\end{qstest} - -\begin{qstest}{Flip}{Flip} - \def\Test#1#2#3{% - \RevSet{abc}{#1}% - \bitsetFlip{abc}{#2}% - \Expect*{\BS@abc}*{\Reverse#3!!}% - }% - \bitsetFlip{abc}{2}% - \RevCheck{abc}{100}% - \TestErrorNegativeIndex{-1}{\bitsetFlip{abc}{-1}}% - \RevCheck{abc}{100}% - \Test{0}{0}{1}% - \Test{1}{0}{0}% - \Test{0}{2}{100}% - \Test{100}{1}{110}% - \Test{111}{1}{101}% - \Test{11}{1}{1}% - \Test{11}{2}{111}% - \Test{11}{3}{1011}% - \Test{111}{10}{10000000111}% - \Test{0000111}{5}{0100111}% 100111 would also be ok - \Test{10000111}{5}{10100111}% - \Test{1000001}{3}{1001001}% - \Test{1001001}{3}{1000001}% - \Test{11111}{2}{11011}% -\end{qstest} - -\begin{qstest}{SetValue}{SetValue} - \def\Test#1#2{% - \TestError{Invalid bit value (#2) not in range 0..1}{% - \bitsetSetValue{abc}{#1}{#2}% - }% - }% - \Test{0}{-1}% - \Test{0}{2}% - \Test{0}{10}% - \def\Test#1#2#3{% - \let\BS@abc\@undefined - \bitsetSetValue{abc}{#1}{#2}% - \bitsetSetBin{result}{#3}% - \Expect*{\BS@abc}*{\BS@result}% - }% - \Test{0}{0}{0}% - \Test{0}{1}{1}% - \Test{1}{0}{0}% - \Test{1}{1}{10}% - \def\Test#1#2#3#4{% - \bitsetSetBin{abc}{#1}% - \bitsetSetBin{result}{#4}% - \bitsetSetValue{abc}{#2}{#3}% - \Expect*{\BS@abc}*{\BS@result}% - }% - \Test{0}{0}{0}{0}% - \Test{0}{0}{0}{0}% - \Test{0}{0}{1}{1}% - \Test{0}{1}{0}{0}% - \Test{0}{1}{1}{10}% - \Test{1010}{2}{1}{1110}% - \Test{1010}{4}{1}{11010}% - \Test{1010}{6}{1}{1001010}% - \Test{1010}{1}{0}{1000}% - \Test{1010}{2}{0}{1010}% - \Test{1010}{3}{0}{10}% - \Test{1010}{4}{0}{1010}% - \Test{1010}{6}{0}{1010}% - \Test{1010}{2}{\csname iffalse\endcsname 0\else 1\fi}{1110}% - \Test{1010}{1}{\csname iffalse\endcsname 1\else 0\fi}{1000}% -\end{qstest} - -\begin{qstest}{IsDefined}{IsDefined} - \let\BS@abc\@undefined - \Expect*{\bitsetIsDefined{abc}{true}{false}}{false}% - \bitsetReset{abc}% - \Expect*{\bitsetIsDefined{abc}{true}{false}}{true}% -\end{qstest} - -\begin{qstest}{IsEmpty}{IsEmpty} - \let\BS@abc\@undefined - \Expect*{\bitsetIsEmpty{abc}{true}{false}}{true}% - \bitsetReset{abc}% - \Expect*{\bitsetIsEmpty{abc}{true}{false}}{true}% - \bitsetSet{abc}{1}% - \Expect*{\bitsetIsEmpty{abc}{true}{false}}{false}% -\end{qstest} - -\begin{qstest}{Equals}{Equals} - \def\Test#1#2#3{% - \Expect*{\bitsetEquals{#1}{#2}{true}{false}}{#3}% - }% - \let\BS@abc\@undefined - \Test{abc}{abc}{true}% - \Test{abc}{foo}{true}% - \Test{foo}{abc}{true}% - \bitsetReset{abc}% - \Test{abc}{abc}{true}% - \Test{abc}{foo}{false}% - \Test{foo}{abc}{false}% - \bitsetReset{foo}% - \Test{abc}{foo}{true}% - \Test{foo}{abc}{true}% - \bitsetSet{abc}{4}% - \Test{abc}{foo}{false}% - \Test{foo}{abc}{false}% - \bitsetFlip{foo}{4}% - \Test{abc}{foo}{true}% - \Test{foo}{abc}{true}% -\end{qstest} - -\begin{qstest}{Intersects}{Intersects} - \def\Test#1{% - \Expect*{\bitsetIntersects{abc}{foo}{true}{false}}{#1}% - }% - \let\BS@abc\@undefined - \let\BS@foo\@undefined - \Test{false}% - \Set{abc}{0}% - \Test{false}% - \Set{foo}{0}% - \Test{false}% - \let\BS@abc\@undefined - \Test{false}% - \Set{foo}{1}% - \Test{false}% - \Set{abc}{0}% - \Test{false}% - \Set{abc}{1}% - \Test{true}% - \let\BS@foo\@undefined - \Test{false}% - \Set{foo}{0}% - \Test{false}% - \def\Test#1#2#3{% - \bitsetSetBin{abc}{#1}% - \bitsetSetBin{foo}{#2}% - \Expect*{\bitsetIntersects{abc}{foo}{true}{false}}{#3}% - }% - \Test{1010}{0101}{false}% - \Test{0}{10}{false}% - \Test{1}{11}{true}% - \Test{11}{1}{true}% - \Test{10}{1}{false}% -\end{qstest} - -\begin{qstest}{And/AndNot/Or/Xor}{And/AndNot/Or/Xor} - \def\@Test#1#2#3#4#5{% - \begingroup - #5% - \begingroup - \let\BS@foo\@undefined - \csname bitset#1\endcsname{abc}{foo}% - \CheckUndef{foo}% - \Check{abc}{#2}% - \endgroup - \begingroup - \bitsetReset{foo}% - \csname bitset#1\endcsname{abc}{foo}% - \Check{foo}{0}% - \Check{abc}{#3}% - \endgroup - \begingroup - \def\BS@foo{0101}% - \csname bitset#1\endcsname{abc}{foo}% - \Check{foo}{0101}% - \Check{abc}{#4}% - \endgroup - \endgroup - }% - \def\Test#1{% - \def\Op{#1}% - \Test@ - }% - \def\Test@#1#2#3#4#5#6#7#8#9{% - \@Test\Op{#1}{#2}{#3}{% - \let\BS@abc\@undefined - }% - \@Test\Op{#4}{#5}{#6}{% - \bitsetReset{abc}% - }% - \@Test\Op{#7}{#8}{#9}{% - \def\BS@abc{1001}% - }% - }% - \Test{And}% - {0}{0}{0}% - {0}{0}{0}% - {0}{0}{0001}% - \Test{AndNot}% - {0}{0}{0}% - {0}{0}{0}% - {1001}{1001}{1}% - \Test{Or}% - {0}{0}{0101}% - {0}{0}{0101}% - {1001}{1001}{1101}% - \Test{Xor}% - {0}{0}{0101}% - {0}{0}{0101}% - {1001}{1001}{11}% - \def\Test#1#2#3{% - \bitsetSetBin{abc}{#1}% - \bitsetSetBin{foo}{#2}% - \csname bitset\Op\endcsname{abc}{foo}% - \RevCheck{foo}{#2}% - \RevCheck{abc}{#3}% - }% - \def\Op{And}% - \Test{1}{111}{1}% - \Test{111}{1}{1}% - \Test{10}{111}{10}% - \Test{111}{10}{10}% - \Test{111}{1000}{0}% - \Test{1000}{111}{0}% - \def\Op{AndNot}% - \Test{1010}{11}{1000}% - \Test{100}{100}{0}% - \Test{111}{1111}{0}% - \Test{100}{111}{0}% - \def\Op{Or}% - \Test{0}{0}{0}% - \Test{1}{0}{1}% - \Test{0}{1}{1}% - \Test{1}{1}{1}% - \Test{1000}{10}{1010}% - \Test{10}{1000}{1010}% - \def\Op{Xor}% - \Test{0}{0}{0}% - \Test{1}{0}{1}% - \Test{0}{1}{1}% - \Test{1}{1}{0}% - \Test{1000}{10}{1010}% - \Test{10}{1000}{1010}% - \Test {110011001100}% - {111000111000111}% - {111110100001011}% - \Test{111000111000111}% - {110011001100}% - {111110100001011}% -\end{qstest} - -\begin{qstest}{GetUndef}{GetUndef, GetBin, GetOct, GetHex} - \def\TestUndef#1#2{% - \let\BS@abc\@undefined - \expandafter\expandafter\expandafter\Expect - \expandafter\expandafter\expandafter{% - \x{abc}{#1}% - }{#2}% - }% - \let\x\bitsetGetBin - \TestUndef{-1}{0}% - \TestUndef{0}{0}% - \TestUndef{1}{0}% - \TestUndef{2}{00}% - \TestUndef{8}{00000000}% - \let\x\bitsetGetOct - \TestUndef{-1}{0}% - \TestUndef{0}{0}% - \TestUndef{1}{0}% - \TestUndef{2}{0}% - \TestUndef{3}{0}% - \TestUndef{4}{00}% - \TestUndef{5}{00}% - \TestUndef{6}{00}% - \TestUndef{7}{000}% - \TestUndef{8}{000}% - \TestUndef{9}{000}% - \TestUndef{10}{0000}% - \let\x\bitsetGetHex - \TestUndef{-1}{0}% - \TestUndef{0}{0}% - \TestUndef{1}{0}% - \TestUndef{2}{0}% - \TestUndef{3}{0}% - \TestUndef{4}{0}% - \TestUndef{5}{00}% - \TestUndef{6}{00}% - \TestUndef{7}{00}% - \TestUndef{8}{00}% - \TestUndef{9}{000}% - \TestUndef{10}{000}% - \TestUndef{12}{000}% - \TestUndef{13}{0000}% - \TestUndef{16}{0000}% - \TestUndef{17}{00000}% -\end{qstest} - -\begin{qstest}{SetBin}{SetBin} - \def\Test#1#2{% - \let\BS@abc\@undefined - \bitsetSetBin{abc}{#1}% - \expandafter\Expect\expandafter{\BS@abc}{#2}% - }% - \Test{}{0}% - \Test{0}{0}% - \Test{1}{1}% - \Test{10}{01}% - \Test{11}{11}% - \Test{010}{01}% - \Test{011}{11}% - \Test{0010}{01}% - \Test{1010}{0101}% -\end{qstest} - -\begin{qstest}{SetOct}{SetOct} - \def\Test#1#2{% - \bitsetSetOct{abc}{#1}% - \expandafter\Expect\expandafter{\BS@abc}{#2}% - }% - \Test{}{0}% - \Test{0}{0}% - \Test{000}{0}% - \Test{1}{1}% - \Test{001}{1}% - \Test{010}{0001}% - \Test{020}{00001}% - \Test{42}{010001}% - \Test{377}{11111111}% - \Test{0377}{11111111}% - \Test{76543210}{000100010110001101011111}% - \Test{ 0 7 0 7 1 }{100111000111}% -\end{qstest} - -\begin{qstest}{SetHex}{SetHex} - \def\Test#1#2{% - \bitsetSetHex{abc}{#1}% - \expandafter\Expect\expandafter{\BS@abc}{#2}% - }% - \Test{}{0}% - \Test{0}{0}% - \Test{000}{0}% - \Test{1}{1}% - \Test{001}{1}% - \Test{010}{00001}% - \Test{020}{000001}% - \Test{42}{0100001}% - \Test{3F}{111111}% - \Test{03F}{111111}% - \Test{43210}{0000100001001100001}% - \Test{98765}{10100110111000011001}% - \Test{FEDCBA}{010111010011101101111111}% - \Test{ 0 F 0 F 1 }{1000111100001111}% -\end{qstest} - -\begin{qstest}{SetDec}{SetDec} - \def\Test#1#2{% - \bitsetSetDec{abc}{#1}% - \expandafter\Expect\expandafter{\BS@abc}{#2}% - }% - \Test{}{0}% - \Test{0}{0}% - \Test{000}{0}% - \Test{1}{1}% - \Test{7}{111}% - \Test{8}{0001}% - \Test{001}{1}% - \Test{010}{0101}% - \Test{020}{00101}% - \Test{53}{101011}% - \Test{255}{11111111}% - \Test{256}{000000001}% - \Test{999999999}{111111111001001101011001110111}% - \Test{1000000000}{000000000101001101011001110111}% - \Test{4210987654}{01100001010010010111111101011111}% - \Test{2147483647}{1111111111111111111111111111111}% - \Test{2147483648}{00000000000000000000000000000001}% -\end{qstest} - -\begin{qstest}{GetBin}{GetBin} - \def\TestUndef#1#2{% - \let\BS@abc\@undefined - \expandafter\expandafter\expandafter\Expect - \expandafter\expandafter\expandafter{% - \bitsetGetBin{abc}{#1}% - }{#2}% - }% - \TestUndef{-1}{0}% - \TestUndef{0}{0}% - \TestUndef{1}{0}% - \TestUndef{2}{00}% - \TestUndef{8}{00000000}% - \def\Test#1#2{% - \bitsetSetBin{abc}{#2}% - \expandafter\expandafter\expandafter\Expect - \expandafter\expandafter\expandafter{% - \bitsetGetBin{abc}{#1}% - }{#2}% - }% - \Test{-1}{0}% - \Test{0}{0}% - \Test{1}{0}% - \Test{1}{1}% - \Test{2}{01}% - \Test{2}{10}% - \Test{3}{010}% - \Test{2}{00}% - \Test{2}{01}% - \Test{8}{00101100}% - \Test{2}{10101}% - \Test{-100}{11011}% -\end{qstest} - -\begin{qstest}{GetOct}{GetOct} - \def\Test#1#2#3{% - \edef\x{\zap@space#1 \@empty}% - \edef\x{\noexpand\bitsetSetBin{abc}{\x}}% - \x - \expandafter\expandafter\expandafter\Expect - \expandafter\expandafter\expandafter{% - \bitsetGetOct{abc}{#2}% - }{#3}% - }% - \Test{111 110 101 100 011 010 001 000}{0}{76543210}% - \Test{000 111}{0}{7}% - \Test{101 000}{-1}{50}% - \Test{111}{-1}{7}% - \Test{111}{0}{7}% - \Test{111}{1}{7}% - \Test{111}{3}{7}% - \Test{111}{4}{07}% - \Test{111}{6}{07}% - \Test{111}{7}{007}% - \Test{111 010}{6}{72}% - \Test{111 010}{7}{072}% - \Test{011 111}{0}{37}% - \Test{011 111}{6}{37}% - \Test{011 111}{7}{037}% - \Test{001 111}{0}{17}% - \Test{001 111}{6}{17}% - \Test{001 111}{7}{017}% -\end{qstest} - -\begin{qstest}{GetHex}{GetHex} - \def\Test#1#2#3{% - \bitsetSetBin{abc}{#1}% - \expandafter\expandafter\expandafter\Expect - \expandafter\expandafter\expandafter{% - \bitsetGetHex{abc}{#2}% - }{#3}% - }% - \Test{1111 1110 1101 1100 1011 1010 1001 1000}{0}{FEDCBA98}% - \Test{0111 0110 0101 0100 0011 0010 0001 0000}{0}{76543210}% - \Test{0000 1111}{0}{F}% - \Test{0101 0000}{-1}{50}% - \Test{1111}{-1}{F}% - \Test{1111}{0}{F}% - \Test{1111}{1}{F}% - \Test{1111}{4}{F}% - \Test{1111}{5}{0F}% - \Test{1111}{8}{0F}% - \Test{1111}{9}{00F}% - \Test{1111 0010}{8}{F2}% - \Test{1111 0010}{9}{0F2}% - \Test{0111 1111}{0}{7F}% - \Test{0111 1111}{8}{7F}% - \Test{0111 1111}{9}{07F}% - \Test{0011 1111}{0}{3F}% - \Test{0011 1111}{8}{3F}% - \Test{0011 1111}{9}{03F}% - \Test{0001 1111}{0}{1F}% - \Test{0001 1111}{8}{1F}% - \Test{0001 1111}{9}{01F}% -\end{qstest} - -\begin{qstest}{Range}{Range} - \TestError{% - Wrong index numbers in range [9..8]\MessageBreak% hash-ok - for clear/set/flip on bit set `abc'.\MessageBreak - The lower index exceeds the upper index.\MessageBreak - Canceling the operation as error recovery% - }{% - \bitsetSetRange{abc}{9}{8}% - }% - \def\TestErrorNegInd#1#2#3#4#5#6{% - \TestError{% - Negative index in range [#2..#3]\MessageBreak % hash-ok - for \string\bitset #1Range on bit set `abc'.\MessageBreak - Using [#4..#5] as error recovery% hash-ok - }{% - \csname bitset#1Range\endcsname{abc}{#2}{#3}% - \global\let\BS@global\BS@abc - }% - \Check{global}{#6}% - }% - \Set{abc}{111}% - \TestErrorNegInd{Clear}{-1}{0}{0}{0}{111}% - \TestErrorNegInd{Clear}{0}{-1}{0}{0}{111}% - \TestErrorNegInd{Clear}{-2}{2}{0}{2}{001}% - \bitsetReset{abc}% - \TestErrorNegInd{Set}{-1}{0}{0}{0}{0}% - \TestErrorNegInd{Set}{0}{-1}{0}{0}{0}% - \TestErrorNegInd{Set}{-2}{2}{0}{2}{11}% - \Set{abc}{101}% - \TestErrorNegInd{Flip}{-1}{0}{0}{0}{101}% - \TestErrorNegInd{Flip}{0}{-1}{0}{0}{101}% - \TestErrorNegInd{Flip}{-2}{2}{0}{2}{011}% - \def\Test#1#2#3#4{% - \bitsetSetBin{abc}{#1}% - \csname bitset\TestOp Range\endcsname{abc}{#2}{#3}% - \Expect*{\bitsetGetBin{abc}{0}}{#4}% - }% - \def\TestOp{Clear}% - \Test{0}{0}{1}{0}% - \Test{1111}{1}{2}{1101}% - \Test{1111}{1}{3}{1001}% - \Test{1111111100000000}{12}{14}{1100111100000000}% - \def\TestOp{Set}% - \Test{0}{0}{1}{1}% - \Test{1000}{1}{2}{1010}% - \Test{0}{1}{2}{10}% - \Test{1}{12}{15}{111000000000001}% - \Test{1111}{1}{3}{1111}% - \Test{1000000000000000}{12}{14}{1011000000000000}% - \def\TestOp{Flip}% - \Test{0}{0}{1}{1}% - \Test{1}{0}{1}{0}% - \Test{10101010}{1}{5}{10110100}% - \def\Test#1#2#3#4#5{% - \bitsetSetBin{abc}{#1}% - \bitsetSetValueRange{abc}{#2}{#3}{#4}% - \Expect*{\bitsetGetBin{abc}{0}}{#5}% - }% - \Test{0}{0}{1}{0}{0}% - \Test{0}{0}{1}{1}{1}% - \Test{1010}{1}{3}{0}{1000}% - \Test{1010}{1}{3}{1}{1110}% -\end{qstest} - -\begin{qstest}{ShiftLeft/ShiftRight}{ShiftLeft/ShiftRight} - \def\@Test#1#2{% - \let\BS@abc\@undefined - \csname bitsetShift#1\endcsname{abc}{#2}% - \Expect*{\BS@abc}{0}% - }% - \def\Test#1{% - \@Test{Left}{#1}% - \@Test{Right}{#1}% - }% - \Test{-16}% - \Test{-1}% - \Test{0}% - \Test{1}% - \Test{16}% - \def\Test#1#2#3{% - \bitsetSetBin{abc}{#1}% - \bitsetSetBin{result}{#3}% - \csname bitsetShift\Op\endcsname{abc}{#2}% - \Expect*{\bitsetGetBin{abc}{0}}*{\bitsetGetBin{result}{0}}% - }% - \def\Op{Left}% - \Test{0}{0}{0}% - \Test{0}{1}{0}% - \Test{0}{-1}{0}% - \Test{1}{0}{1}% - \Test{1}{1}{10}% - \Test{1}{-1}{0}% - \Test{10}{1}{100}% - \Test{10}{-1}{1}% - \Test{1}{32}{100000000000000000000000000000000}% - \Test{1}{-100}{0}% - \def\Op{Right}% - \Test{0}{0}{0}% - \Test{0}{1}{0}% - \Test{0}{-1}{0}% - \Test{1}{0}{1}% - \Test{1}{1}{0}% - \Test{1}{-1}{10}% - \Test{10}{1}{1}% - \Test{10}{-1}{100}% - \Test{1}{-32}{100000000000000000000000000000000}% - \Test{1}{100}{0}% - \Test{110110110110110}{10}{11011}% - \Test{110110110110110}{100}{0}% - \Test{1}{100000}{0}% -\end{qstest} - -\begin{qstest}{Profile: Set}{Profile: Set} - \bitsetSet{abc}{4095}% - \global\let\BS@global\BS@abc -\end{qstest} - -\begin{qstest}{Profile: Get}{Profile: Get} - \edef\x{\bitsetGet{global}{4095}}% -\end{qstest} - -\begin{document} -\end{document} -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -4064,9 +2826,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % bitset.sty & tex/generic/oberdiek/bitset.sty\\ % bitset.pdf & doc/latex/oberdiek/bitset.pdf\\ -% test/bitset-test1.tex & doc/latex/oberdiek/test/bitset-test1.tex\\ -% test/bitset-test2.tex & doc/latex/oberdiek/test/bitset-test2.tex\\ -% test/bitset-test3.tex & doc/latex/oberdiek/test/bitset-test3.tex\\ % bitset.dtx & source/latex/oberdiek/bitset.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/bitset.pdf b/macros/latex/contrib/oberdiek/bitset.pdf index 27ccddf492..63ca003658 100644 Binary files a/macros/latex/contrib/oberdiek/bitset.pdf and b/macros/latex/contrib/oberdiek/bitset.pdf differ diff --git a/macros/latex/contrib/oberdiek/bmpsize.dtx b/macros/latex/contrib/oberdiek/bmpsize.dtx index a0d76210c2..a6c815e430 100644 --- a/macros/latex/contrib/oberdiek/bmpsize.dtx +++ b/macros/latex/contrib/oberdiek/bmpsize.dtx @@ -64,7 +64,6 @@ % Installation: % TDS:tex/latex/oberdiek/bmpsize.sty % TDS:tex/latex/oberdiek/bmpsize-base.sty -% TDS:tex/latex/oberdiek/bmpsize-test.tex % TDS:tex/latex/oberdiek/bmpsize-dvips.def % TDS:tex/latex/oberdiek/bmpsize-dvipdfm.def % TDS:tex/latex/oberdiek/bmpsize-dvipdfmx.def @@ -140,10 +139,6 @@ and the derived files \file{bmpsize-dvips.def}{\from{bmpsize.dtx}{dvips}}% \file{bmpsize-dvipdfm.def}{\from{bmpsize.dtx}{dvipdfm}}% \file{bmpsize-dvipdfmx.def}{\from{bmpsize.dtx}{dvipdfmx}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{bmpsize.xml}{\from{bmpsize.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -182,21 +177,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{bmpsize.drv} % @@ -3791,7 +3771,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % bmpsize.sty & tex/latex/oberdiek/bmpsize.sty\\ % bmpsize-base.sty & tex/latex/oberdiek/bmpsize-base.sty\\ -% bmpsize-test.tex & tex/latex/oberdiek/bmpsize-test.tex\\ % bmpsize-dvips.def & tex/latex/oberdiek/bmpsize-dvips.def\\ % bmpsize-dvipdfm.def & tex/latex/oberdiek/bmpsize-dvipdfm.def\\ % bmpsize-dvipdfmx.def & tex/latex/oberdiek/bmpsize-dvipdfmx.def\\ @@ -3911,7 +3890,7 @@ and the derived files % D.\,P.\,Carlisle, The \LaTeX\ Project: % \textit{Packages in the `graphics' bundle}, % 2005/11/14; -% \CTAN{macros/latex/required/graphics/grfguide.pdf}. +% \CTANpkg{grfguide}. % % \subsection{URLs for bitmap format descriptions} % diff --git a/macros/latex/contrib/oberdiek/bmpsize.pdf b/macros/latex/contrib/oberdiek/bmpsize.pdf index 7361945b91..bd0bbf6032 100644 Binary files a/macros/latex/contrib/oberdiek/bmpsize.pdf and b/macros/latex/contrib/oberdiek/bmpsize.pdf differ diff --git a/macros/latex/contrib/oberdiek/catchfile.dtx b/macros/latex/contrib/oberdiek/catchfile.dtx index 2f40cdd388..439a7871e7 100644 --- a/macros/latex/contrib/oberdiek/catchfile.dtx +++ b/macros/latex/contrib/oberdiek/catchfile.dtx @@ -67,9 +67,6 @@ % Installation: % TDS:tex/generic/oberdiek/catchfile.sty % TDS:doc/latex/oberdiek/catchfile.pdf -% TDS:doc/latex/oberdiek/test/catchfile-test1.tex -% TDS:doc/latex/oberdiek/test/catchfile-test2.tex -% TDS:doc/latex/oberdiek/test/catchfile-test3.tex % TDS:source/latex/oberdiek/catchfile.dtx % %<*ignore> @@ -143,10 +140,6 @@ and the derived files % \file{catchfile-test1.tex}{\from{catchfile.dtx}{test1}}% % \file{catchfile-test2.tex}{\from{catchfile.dtx}{test2}}% % \file{catchfile-test3.tex}{\from{catchfile.dtx}{test3}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{catchfile.xml}{\from{catchfile.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -183,21 +176,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{catchfile.drv} % @@ -591,306 +569,7 @@ and the derived files \CatchFile@AtEnd% % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input catchfile.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{\LaTeX} -% -% \begin{macrocode} -%<*test2> -\NeedsTeXFormat{LaTeX2e} -\nofiles -\listfiles -\tracingnesting=2 % -\documentclass{minimal} -\usepackage{catchfile}[2016/05/16] -\makeatletter -\def\mysetup{% - \let\do\@makeother - \dospecials -} -\def\CheckContents{% - \begingroup - \expandafter\ifx\csname contents\endcsname\relax - \PackageError{TEST}{\string\contents\space is not defined}\@ehc - \fi - \endgroup -} -\def\StartDisableUnexpanded{% - \begingroup - \let\etex@unexpanded\@undefined -} -\def\StopDisableUnexpanded{% - \endgroup -} -\def\CheckCleanup{% - \begingroup - \edef\x{\the\toks0}% - \def\y{ABC}% - \ifx\x\y - \else - \PackageError{TEST}{\string\toks0 has changed}\@ehc - \fi - \ifx\CatchFile@gtemp\@undefined - \else - \PackageError{TEST}{Left over \string\CatchFile@gtemp}\@ehc - \fi - \endgroup -} -\def\Check{% - \CheckContents - \CheckCleanup -} -\makeatother -\begin{document} -\toks0{ABC} - -\CatchFileDef\contents{catchfile.sty}\mysetup -\typeout{\meaning\contents} -\Check -\typeout{***********************************************************}% -\CatchFileDef\contents{catchfile.sty}{} -\typeout{\meaning\contents} -\Check -\typeout{***********************************************************}% - -\StartDisableUnexpanded -\CatchFileDef\contents{catchfile.sty}\mysetup -\typeout{\meaning\contents} -\Check -\typeout{***********************************************************}% -\CatchFileDef\contents{catchfile.sty}{} -\typeout{\meaning\contents} -\Check -\typeout{***********************************************************}% -\StopDisableUnexpanded - -\CatchFileEdef\contents{catchfile.sty}{% - \mysetup - \def\par{^^J}% - \obeylines -} -\typeout{\contents} -\Check -\typeout{***********************************************************}% -\CatchFileEdef\contents{catchfile.sty}{% - \catcode`\\=12 % - \catcode`\#=12 % - \def\par{^^J}% - \obeylines -} -\typeout{\contents} -\Check -\typeout{***********************************************************}% -\end{document} -% -% \end{macrocode} -% -% \subsection{\plainTeX} -% -% \begin{macrocode} -%<*test3> -\def\msg#{\immediate\write16} -\newlinechar=10 % -\tracingnesting=2 % -\input catchfile.sty\relax - -\def\mysetup{% - \def\do##1{% - \catcode`##1=12\relax - }% - \dospecials -} -\def\CheckContents{% - \begingroup - \expandafter\ifx\csname contents\endcsname\relax - \def\space{ }% - \errmessage{\string\contents\space is not defined.}% - \fi - \endgroup -} -\catcode`\@=11 % -\def\CheckCleanup{% - \begingroup - \edef\x{\the\toks0}% - \def\y{ABC}% - \ifx\x\y - \else - \errmessage{\string\toks0 has changed}% - \fi - \ifx\CatchFile@gtemp\@undefined - \else - \errmessage{Left over \string\CatchFile@gtemp}% - \fi - \endgroup -} -\def\Check{% - \CheckContents - \CheckCleanup -} -\def\StartDisableUnexpanded{% - \begingroup - \let\etex@unexpanded\@undefined -} -\def\StopDisableUnexpanded{% - \endgroup -} -\catcode`\@=12 % - -\toks0{ABC} - -\CatchFileDef\contents{catchfile.sty}\mysetup -\msg{\meaning\contents} -\Check -\msg{***********************************************************}% -\CatchFileDef\contents{catchfile.sty}{} -\msg{\meaning\contents} -\Check -\msg{***********************************************************}% - -\StartDisableUnexpanded -\CatchFileDef\contents{catchfile.sty}\mysetup -\msg{\meaning\contents} -\Check -\msg{***********************************************************}% -\CatchFileDef\contents{catchfile.sty}{} -\msg{\meaning\contents} -\Check -\msg{***********************************************************}% -\StopDisableUnexpanded - -\CatchFileEdef\contents{catchfile.sty}{% - \mysetup - \def\par{^^J}% - \obeylines -} -\msg{\contents} -\Check -\msg{***********************************************************}% -\CatchFileEdef\contents{catchfile.sty}{% - \catcode`\\=12 % - \catcode`\#=12 % - \def\par{^^J}% - \obeylines -} -\msg{\contents} -\Check -\msg{***********************************************************}% - -\csname @@end\endcsname -\end -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -939,9 +618,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % catchfile.sty & tex/generic/oberdiek/catchfile.sty\\ % catchfile.pdf & doc/latex/oberdiek/catchfile.pdf\\ -% test/catchfile-test1.tex & doc/latex/oberdiek/test/catchfile-test1.tex\\ -% test/catchfile-test2.tex & doc/latex/oberdiek/test/catchfile-test2.tex\\ -% test/catchfile-test3.tex & doc/latex/oberdiek/test/catchfile-test3.tex\\ % catchfile.dtx & source/latex/oberdiek/catchfile.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/catchfile.pdf b/macros/latex/contrib/oberdiek/catchfile.pdf index e80f9d2f22..79c8e5ec02 100644 Binary files a/macros/latex/contrib/oberdiek/catchfile.pdf and b/macros/latex/contrib/oberdiek/catchfile.pdf differ diff --git a/macros/latex/contrib/oberdiek/centernot.dtx b/macros/latex/contrib/oberdiek/centernot.dtx index 44be798cbd..dd990a3319 100644 --- a/macros/latex/contrib/oberdiek/centernot.dtx +++ b/macros/latex/contrib/oberdiek/centernot.dtx @@ -126,10 +126,6 @@ and the derived files \file{centernot.drv}{\from{centernot.dtx}{driver}}% \usedir{tex/latex/oberdiek}% \file{centernot.sty}{\from{centernot.dtx}{package}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{centernot.xml}{\from{centernot.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -181,21 +177,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{centernot.drv} % diff --git a/macros/latex/contrib/oberdiek/centernot.pdf b/macros/latex/contrib/oberdiek/centernot.pdf index 312a833231..c2bf34846a 100644 Binary files a/macros/latex/contrib/oberdiek/centernot.pdf and b/macros/latex/contrib/oberdiek/centernot.pdf differ diff --git a/macros/latex/contrib/oberdiek/chemarr.dtx b/macros/latex/contrib/oberdiek/chemarr.dtx index 528eef4571..78e1a3cbeb 100644 --- a/macros/latex/contrib/oberdiek/chemarr.dtx +++ b/macros/latex/contrib/oberdiek/chemarr.dtx @@ -131,10 +131,6 @@ and the derived files \file{chemarr.sty}{\from{chemarr.dtx}{package}}% \usedir{doc/latex/oberdiek}% \file{chemarr-example.tex}{\from{chemarr.dtx}{example}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{chemarr.xml}{\from{chemarr.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -172,21 +168,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{chemarr.drv} % diff --git a/macros/latex/contrib/oberdiek/chemarr.pdf b/macros/latex/contrib/oberdiek/chemarr.pdf index 9455775c80..a6494f979f 100644 Binary files a/macros/latex/contrib/oberdiek/chemarr.pdf and b/macros/latex/contrib/oberdiek/chemarr.pdf differ diff --git a/macros/latex/contrib/oberdiek/classlist.dtx b/macros/latex/contrib/oberdiek/classlist.dtx index 978798a9d1..8b45464521 100644 --- a/macros/latex/contrib/oberdiek/classlist.dtx +++ b/macros/latex/contrib/oberdiek/classlist.dtx @@ -126,10 +126,6 @@ and the derived files \file{classlist.drv}{\from{classlist.dtx}{driver}}% \usedir{tex/latex/oberdiek}% \file{classlist.sty}{\from{classlist.dtx}{package}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{classlist.xml}{\from{classlist.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -166,21 +162,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{classlist.drv} % diff --git a/macros/latex/contrib/oberdiek/classlist.pdf b/macros/latex/contrib/oberdiek/classlist.pdf index f85b447aee..7aeefafc1f 100644 Binary files a/macros/latex/contrib/oberdiek/classlist.pdf and b/macros/latex/contrib/oberdiek/classlist.pdf differ diff --git a/macros/latex/contrib/oberdiek/colonequals.dtx b/macros/latex/contrib/oberdiek/colonequals.dtx index c3f78e4c60..aeae542c39 100644 --- a/macros/latex/contrib/oberdiek/colonequals.dtx +++ b/macros/latex/contrib/oberdiek/colonequals.dtx @@ -126,10 +126,6 @@ and the derived files \file{colonequals.drv}{\from{colonequals.dtx}{driver}}% \usedir{tex/latex/oberdiek}% \file{colonequals.sty}{\from{colonequals.dtx}{package}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{colonequals.xml}{\from{colonequals.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -170,21 +166,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{colonequals.drv} % diff --git a/macros/latex/contrib/oberdiek/colonequals.pdf b/macros/latex/contrib/oberdiek/colonequals.pdf index 563da3658a..827f29fa40 100644 Binary files a/macros/latex/contrib/oberdiek/colonequals.pdf and b/macros/latex/contrib/oberdiek/colonequals.pdf differ diff --git a/macros/latex/contrib/oberdiek/dvipscol.dtx b/macros/latex/contrib/oberdiek/dvipscol.dtx index 00840f825c..0141ae2a94 100644 --- a/macros/latex/contrib/oberdiek/dvipscol.dtx +++ b/macros/latex/contrib/oberdiek/dvipscol.dtx @@ -126,10 +126,6 @@ and the derived files \file{dvipscol.drv}{\from{dvipscol.dtx}{driver}}% \usedir{tex/latex/oberdiek}% \file{dvipscol.sty}{\from{dvipscol.dtx}{package}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{dvipscol.xml}{\from{dvipscol.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -166,21 +162,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{dvipscol.drv} % diff --git a/macros/latex/contrib/oberdiek/dvipscol.pdf b/macros/latex/contrib/oberdiek/dvipscol.pdf index cc6cd3dd0b..9b9773d2d4 100644 Binary files a/macros/latex/contrib/oberdiek/dvipscol.pdf and b/macros/latex/contrib/oberdiek/dvipscol.pdf differ diff --git a/macros/latex/contrib/oberdiek/engord.dtx b/macros/latex/contrib/oberdiek/engord.dtx index e083c48ed1..6c75953200 100644 --- a/macros/latex/contrib/oberdiek/engord.dtx +++ b/macros/latex/contrib/oberdiek/engord.dtx @@ -65,7 +65,6 @@ % Installation: % TDS:tex/generic/oberdiek/engord.sty % TDS:doc/latex/oberdiek/engord.pdf -% TDS:doc/latex/oberdiek/test/engord-test1.tex % TDS:source/latex/oberdiek/engord.dtx % %<*ignore> @@ -135,10 +134,6 @@ and the derived files \file{engord.sty}{\from{engord.dtx}{package}}% % \usedir{doc/latex/oberdiek/test}% % \file{engord-test1.tex}{\from{engord.dtx}{test1}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{engord.xml}{\from{engord.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -175,21 +170,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{engord.drv} % @@ -655,118 +635,7 @@ and the derived files % \begin{macrocode} % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input engord.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -815,7 +684,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % engord.sty & tex/generic/oberdiek/engord.sty\\ % engord.pdf & doc/latex/oberdiek/engord.pdf\\ -% test/engord-test1.tex & doc/latex/oberdiek/test/engord-test1.tex\\ % engord.dtx & source/latex/oberdiek/engord.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/engord.pdf b/macros/latex/contrib/oberdiek/engord.pdf index 204f7c9be8..212962f233 100644 Binary files a/macros/latex/contrib/oberdiek/engord.pdf and b/macros/latex/contrib/oberdiek/engord.pdf differ diff --git a/macros/latex/contrib/oberdiek/enparen.dtx b/macros/latex/contrib/oberdiek/enparen.dtx index be11acbd10..773ebc861c 100644 --- a/macros/latex/contrib/oberdiek/enparen.dtx +++ b/macros/latex/contrib/oberdiek/enparen.dtx @@ -163,21 +163,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{enparen.drv} % diff --git a/macros/latex/contrib/oberdiek/enparen.pdf b/macros/latex/contrib/oberdiek/enparen.pdf index 8d539601a7..dfd4019199 100644 Binary files a/macros/latex/contrib/oberdiek/enparen.pdf and b/macros/latex/contrib/oberdiek/enparen.pdf differ diff --git a/macros/latex/contrib/oberdiek/eolgrab.dtx b/macros/latex/contrib/oberdiek/eolgrab.dtx index 20d16b380e..d27e99d34e 100644 --- a/macros/latex/contrib/oberdiek/eolgrab.dtx +++ b/macros/latex/contrib/oberdiek/eolgrab.dtx @@ -71,8 +71,6 @@ % TDS:doc/latex/oberdiek/example/eolgrab-example-ltx.tex % TDS:doc/latex/oberdiek/example/eolgrab-example-env.tex % TDS:doc/latex/oberdiek/example/eolgrab-example-sec.tex -% TDS:doc/latex/oberdiek/test/eolgrab-test1.tex -% TDS:doc/latex/oberdiek/test/eolgrab-test2.tex % TDS:source/latex/oberdiek/eolgrab.dtx % %<*ignore> @@ -150,10 +148,6 @@ and the derived files % \usedir{doc/latex/oberdiek/test}% % \file{eolgrab-test1.tex}{\from{eolgrab.dtx}{test1}}% % \file{eolgrab-test2.tex}{\from{eolgrab.dtx}{test2}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{eolgrab.xml}{\from{eolgrab.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -190,21 +184,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{eolgrab.drv} % @@ -688,152 +667,7 @@ and the derived files % \begin{macrocode} % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input eolgrab.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Tests for \hologo{plainTeX}} -% -% \begin{macrocode} -%<*test2> -\input eolgrab.sty\relax -\catcode`\{=1 % -\catcode`\}=2 % -\eolgrab{\immediate\write16}Hello World -\def\TestExpected{foo bar} -\eolgrab{\def\TestResult}foo bar - -\ifx\TestExpected\TestResult - \immediate\write16{* Ok (foo bar)}% -\else - \errmessage{Test failed (foo bar)}% -\fi - -\begingroup - \def\TestExpected{foobar}% - \endlinechar=-1 % - \eolgrab{\def\TestResult}foo - bar - ^^M - \ifx\TestExpected\TestResult - \immediate\write16{* Ok (foobar)}% - \else - \errmessage{Test failed (foobar)}% - \fi -\endgroup - -\csname @@end\endcsname\end -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -885,8 +719,6 @@ and the derived files % example/eolgrab-example-ltx.tex & doc/latex/oberdiek/example/eolgrab-example-ltx.tex\\ % example/eolgrab-example-env.tex & doc/latex/oberdiek/example/eolgrab-example-env.tex\\ % example/eolgrab-example-sec.tex & doc/latex/oberdiek/example/eolgrab-example-sec.tex\\ -% test/eolgrab-test1.tex & doc/latex/oberdiek/test/eolgrab-test1.tex\\ -% test/eolgrab-test2.tex & doc/latex/oberdiek/test/eolgrab-test2.tex\\ % eolgrab.dtx & source/latex/oberdiek/eolgrab.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/eolgrab.pdf b/macros/latex/contrib/oberdiek/eolgrab.pdf index 109807d706..9040b72738 100644 Binary files a/macros/latex/contrib/oberdiek/eolgrab.pdf and b/macros/latex/contrib/oberdiek/eolgrab.pdf differ diff --git a/macros/latex/contrib/oberdiek/etexcmds.dtx b/macros/latex/contrib/oberdiek/etexcmds.dtx index 6d8e95cbe5..236169a3af 100644 --- a/macros/latex/contrib/oberdiek/etexcmds.dtx +++ b/macros/latex/contrib/oberdiek/etexcmds.dtx @@ -67,10 +67,6 @@ % Installation: % TDS:tex/generic/oberdiek/etexcmds.sty % TDS:doc/latex/oberdiek/etexcmds.pdf -% TDS:doc/latex/oberdiek/test/etexcmds-test1.tex -% TDS:doc/latex/oberdiek/test/etexcmds-test2.tex -% TDS:doc/latex/oberdiek/test/etexcmds-test3.tex -% TDS:doc/latex/oberdiek/test/etexcmds-test4.tex % TDS:source/latex/oberdiek/etexcmds.dtx % %<*ignore> @@ -145,10 +141,6 @@ and the derived files % \file{etexcmds-test2.tex}{\from{etexcmds.dtx}{test2}}% % \file{etexcmds-test3.tex}{\from{etexcmds.dtx}{test3}}% % \file{etexcmds-test4.tex}{\from{etexcmds.dtx}{test4}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{etexcmds.xml}{\from{etexcmds.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -185,21 +177,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{etexcmds.drv} % @@ -555,180 +532,7 @@ and the derived files \etexcmds@AtEnd% % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input etexcmds.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Macro tests} -% -% \begin{macrocode} -%<*test2> -\immediate\write16{etexcmds-test2.tex: test file for plainTeX} -\input etexcmds.sty\relax -\catcode`\@=11 % -\edef\x{\string\unexpanded} -\edef\y{\meaning\etex@unexpanded} -\ifx\x\y -\else - \@PackageError{etexcmds-test2}{Test failed}\@ehc -\fi -\end -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test3> -\NeedsTeXFormat{LaTeX2e} -\ProvidesFile{etexcmds-test3.tex}[2016/05/16 v1.6 Test file for LaTeX] -\RequirePackage{etexcmds} -\makeatletter -\edef\x{\string\unexpanded} -\edef\y{\meaning\etex@unexpanded} -\ifx\x\y -\else - \@PackageError{etexcmds-test3}{Test failed}\@ehc -\fi -\stop -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test4> -\NeedsTeXFormat{LaTeX2e} -\ProvidesFile{etexcmds-test4.tex}[2016/05/16 v1.6 Test file for LaTeX] -\documentclass{article} -\usepackage{m-pictex} -\def\normalwritestatus#1#2{% - \typeout{EMERGENCY HACK \string\normalwritestatus}% - \typeout{#1: #2}% -} -\usepackage{m-ch-de} -\usepackage{etexcmds} -\makeatletter -\ifetex@unexpanded - \edef\x{\string\unexpanded}% - \edef\y{\meaning\etex@unexpanded}% - \ifx\x\y - \else - \@PackageWarningNoLine{etexcmds-test4}{Test failed}% - \fi -\else - \@PackageWarningNoLine{etexcmds-test4}{% - Test failed because of ConTeXt% - }% -\fi -\stop -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -777,10 +581,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % etexcmds.sty & tex/generic/oberdiek/etexcmds.sty\\ % etexcmds.pdf & doc/latex/oberdiek/etexcmds.pdf\\ -% test/etexcmds-test1.tex & doc/latex/oberdiek/test/etexcmds-test1.tex\\ -% test/etexcmds-test2.tex & doc/latex/oberdiek/test/etexcmds-test2.tex\\ -% test/etexcmds-test3.tex & doc/latex/oberdiek/test/etexcmds-test3.tex\\ -% test/etexcmds-test4.tex & doc/latex/oberdiek/test/etexcmds-test4.tex\\ % etexcmds.dtx & source/latex/oberdiek/etexcmds.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/etexcmds.pdf b/macros/latex/contrib/oberdiek/etexcmds.pdf index a8cd82cfd9..4015fb4ca4 100644 Binary files a/macros/latex/contrib/oberdiek/etexcmds.pdf and b/macros/latex/contrib/oberdiek/etexcmds.pdf differ diff --git a/macros/latex/contrib/oberdiek/fibnum.dtx b/macros/latex/contrib/oberdiek/fibnum.dtx index 97c5591106..9c3f8f7986 100644 --- a/macros/latex/contrib/oberdiek/fibnum.dtx +++ b/macros/latex/contrib/oberdiek/fibnum.dtx @@ -67,8 +67,6 @@ % Installation: % TDS:tex/generic/oberdiek/fibnum.sty % TDS:doc/latex/oberdiek/fibnum.pdf -% TDS:doc/latex/oberdiek/test/fibnum-test1.tex -% TDS:doc/latex/oberdiek/test/fibnum-test-calc.tex % TDS:source/latex/oberdiek/fibnum.dtx % %<*ignore> @@ -219,21 +217,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{fibnum.drv} % @@ -738,249 +721,7 @@ and the derived files \FibNum@AtEnd% % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input fibnum.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Test calculations} -% -% \begin{macrocode} -%<*test-calc> -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname RequirePackage\endcsname\relax - \input fibnum.sty\relax -\else - \RequirePackage{fibnum}[2016/05/16]% -\fi -\def\TestSet{% - \test{0}{0}% - \test{1}{1}% - \test{2}{1}% - \test{3}{2}% - \test{4}{3}% - \test{5}{5}% - \test{6}{8}% - \test{7}{13}% - \test{8}{21}% - \test{9}{34}% - \test{10}{55}% - \test{11}{89}% - \test{12}{144}% - \test{13}{233}% - \test{14}{377}% - \test{15}{610}% - \test{16}{987}% - \test{17}{1597}% - \test{18}{2584}% - \test{19}{4181}% - \test{20}{6765}% - \test{21}{10946}% - \test{22}{17711}% - \test{23}{28657}% - \test{24}{46368}% - \test{25}{75025}% - \test{26}{121393}% - \test{27}{196418}% - \test{28}{317811}% - \test{29}{514229}% - \test{30}{832040}% - \test{31}{1346269}% - \test{32}{2178309}% - \test{33}{3524578}% - \test{34}{5702887}% - \test{35}{9227465}% - \test{36}{14930352}% - \test{37}{24157817}% - \test{38}{39088169}% - \test{39}{63245986}% - \test{40}{102334155}% - \test{41}{165580141}% - \test{42}{267914296}% - \test{43}{433494437}% - \test{44}{701408733}% - \test{45}{1134903170}% - \test{46}{1836311903}% - \test{47}{2971215073}% - \test{48}{4807526976}% - \test{49}{7778742049}% - \test{50}{12586269025}% - \test{51}{20365011074}% - \test{52}{32951280099}% - \test{53}{53316291173}% - \test{54}{86267571272}% - \test{55}{139583862445}% - \test{56}{225851433717}% - \test{57}{365435296162}% - \test{58}{591286729879}% - \test{59}{956722026041}% - \test{60}{1548008755920}% - \test{61}{2504730781961}% - \test{62}{4052739537881}% - \test{63}{6557470319842}% - \test{64}{10610209857723}% - \test{65}{17167680177565}% - \test{66}{27777890035288}% - \test{67}{44945570212853}% - \test{68}{72723460248141}% - \test{69}{117669030460994}% - \test{70}{190392490709135}% - \test{71}{308061521170129}% - \test{72}{498454011879264}% - \test{73}{806515533049393}% -} -\def\msg#{\immediate\write16} -\def\test#1#2{% - \TestAux{#1}{#2}% - \ifnum#1=0 % - \else - \ifodd#1 % - \TestAux{-#1}{#2}% - \else - \TestAux{-#1}{-#2}% - \fi - \fi -} -\def\TestAux#1#2{% - \def\Expected{#2}% - \expandafter\expandafter\expandafter\def - \expandafter\expandafter\expandafter\Result - \expandafter\expandafter\expandafter{% - \fibnum{#1}% - }% - \ltx@onelevel@sanitize\Result - \ifx\Result\Expected - \msg{* #1: ok.}% - \else - \msg{! fib(#1) = #2}% - \errmessage{fib(#1) <> \Result}% - \fi -} -\TestSet -\setbox0=\hbox{% - \msg{* PreCalc{73}}% - \fibnumPreCalc{73}% -} -\ifdim\wd0=0pt -\else - \errmessage{Unwanted stuff in PreCalc}% -\fi -\TestSet -\csname @@end\endcsname\end -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -1029,8 +770,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % fibnum.sty & tex/generic/oberdiek/fibnum.sty\\ % fibnum.pdf & doc/latex/oberdiek/fibnum.pdf\\ -% test/fibnum-test1.tex & doc/latex/oberdiek/test/fibnum-test1.tex\\ -% test/fibnum-test-calc.tex & doc/latex/oberdiek/test/fibnum-test-calc.tex\\ % fibnum.dtx & source/latex/oberdiek/fibnum.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/fibnum.pdf b/macros/latex/contrib/oberdiek/fibnum.pdf index 8787bf4d5a..a4c0823fe5 100644 Binary files a/macros/latex/contrib/oberdiek/fibnum.pdf and b/macros/latex/contrib/oberdiek/fibnum.pdf differ diff --git a/macros/latex/contrib/oberdiek/flags.dtx b/macros/latex/contrib/oberdiek/flags.dtx index eccf6d3c9a..6a2d05c7b4 100644 --- a/macros/latex/contrib/oberdiek/flags.dtx +++ b/macros/latex/contrib/oberdiek/flags.dtx @@ -126,10 +126,6 @@ and the derived files \file{flags.drv}{\from{flags.dtx}{driver}}% \usedir{tex/latex/oberdiek}% \file{flags.sty}{\from{flags.dtx}{package}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{flags.xml}{\from{flags.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -166,21 +162,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{flags.drv} % diff --git a/macros/latex/contrib/oberdiek/flags.pdf b/macros/latex/contrib/oberdiek/flags.pdf index 36418b15f3..86af3a2b8a 100644 Binary files a/macros/latex/contrib/oberdiek/flags.pdf and b/macros/latex/contrib/oberdiek/flags.pdf differ diff --git a/macros/latex/contrib/oberdiek/gettitlestring.dtx b/macros/latex/contrib/oberdiek/gettitlestring.dtx index 6d9dfad7c5..724ed7fecc 100644 --- a/macros/latex/contrib/oberdiek/gettitlestring.dtx +++ b/macros/latex/contrib/oberdiek/gettitlestring.dtx @@ -67,8 +67,6 @@ % Installation: % TDS:tex/generic/oberdiek/gettitlestring.sty % TDS:doc/latex/oberdiek/gettitlestring.pdf -% TDS:doc/latex/oberdiek/test/gettitlestring-test1.tex -% TDS:doc/latex/oberdiek/test/gettitlestring-test2.tex % TDS:source/latex/oberdiek/gettitlestring.dtx % %<*ignore> @@ -141,10 +139,6 @@ and the derived files % \usedir{doc/latex/oberdiek/test}% % \file{gettitlestring-test1.tex}{\from{gettitlestring.dtx}{test1}}% % \file{gettitlestring-test2.tex}{\from{gettitlestring.dtx}{test2}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{gettitlestring.xml}{\from{gettitlestring.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -181,21 +175,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{gettitlestring.drv} % @@ -616,158 +595,7 @@ and the derived files \GTS@AtEnd% % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input gettitlestring.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Test of non-expand method} -% -% \begin{macrocode} -%<*test2> -\NeedsTeXFormat{LaTeX2e} -\documentclass{minimal} -\usepackage{gettitlestring}[2016/05/16] -\usepackage{qstest} -\IncludeTests{*} -\LogTests{log}{*}{*} -\begin{document} -\begin{qstest}{non-expand}{non-expand} - \def\test#1#2{% - \sbox0{% - \GetTitleString{#1}% - \Expect{#2}*{\GetTitleStringResult}% - }% - \Expect{0.0pt}*{\the\wd0}% - }% - \test{}{}% - \test{ }{}% - \test{ x }{x}% - \test{ x y }{x y}% - \test{ \relax}{\relax}% - \test{\label{f}a}{a}% - \test{ \label{f}a}{a}% - \test{\label{f} a}{a}% - \test{ \label{f} a}{a}% - \test{a\label{f}}{a}% - \test{a\label{f} }{a}% - \test{a \label{f}}{a}% - \test{a \label{f} }{a}% - \test{a\label{f}b\label{g}}{ab}% - \test{a \label{f}b \label{g} }{a b}% - \test{a\label{f} b \label{g} }{a b}% -\end{qstest} -\end{document} -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -816,8 +644,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % gettitlestring.sty & tex/generic/oberdiek/gettitlestring.sty\\ % gettitlestring.pdf & doc/latex/oberdiek/gettitlestring.pdf\\ -% test/gettitlestring-test1.tex & doc/latex/oberdiek/test/gettitlestring-test1.tex\\ -% test/gettitlestring-test2.tex & doc/latex/oberdiek/test/gettitlestring-test2.tex\\ % gettitlestring.dtx & source/latex/oberdiek/gettitlestring.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/gettitlestring.pdf b/macros/latex/contrib/oberdiek/gettitlestring.pdf index eb62b74593..96c4bc13ae 100644 Binary files a/macros/latex/contrib/oberdiek/gettitlestring.pdf and b/macros/latex/contrib/oberdiek/gettitlestring.pdf differ diff --git a/macros/latex/contrib/oberdiek/grfext.dtx b/macros/latex/contrib/oberdiek/grfext.dtx deleted file mode 100644 index b52dee6151..0000000000 --- a/macros/latex/contrib/oberdiek/grfext.dtx +++ /dev/null @@ -1,1130 +0,0 @@ -% \iffalse meta-comment -% -% File: grfext.dtx -% Version: 2016/05/16 v1.2 -% Info: Manage graphics extensions -% -% Copyright (C) -% 2007, 2010 Heiko Oberdiek -% 2016-2019 Oberdiek Package Support Group -% https://github.com/ho-tex/oberdiek/issues -% -% This work may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either -% version 1.3c of this license or (at your option) any later -% version. This version of this license is in -% https://www.latex-project.org/lppl/lppl-1-3c.txt -% and the latest version of this license is in -% https://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 Maintainers of this work are -% Heiko Oberdiek and the Oberdiek Package Support Group -% https://github.com/ho-tex/oberdiek/issues -% -% This work consists of the main source file grfext.dtx -% and the derived files -% grfext.sty, grfext.pdf, grfext.ins, grfext.drv, grfext-test1.tex, -% grfext-test2.tex. -% -% Distribution: -% CTAN:macros/latex/contrib/oberdiek/grfext.dtx -% CTAN:macros/latex/contrib/oberdiek/grfext.pdf -% -% Unpacking: -% (a) If grfext.ins is present: -% tex grfext.ins -% (b) Without grfext.ins: -% tex grfext.dtx -% (c) If you insist on using LaTeX -% latex \let\install=y\input{grfext.dtx} -% (quote the arguments according to the demands of your shell) -% -% Documentation: -% (a) If grfext.drv is present: -% latex grfext.drv -% (b) Without grfext.drv: -% latex grfext.dtx; ... -% The class ltxdoc loads the configuration file ltxdoc.cfg -% if available. Here you can specify further options, e.g. -% use A4 as paper format: -% \PassOptionsToClass{a4paper}{article} -% -% Programm calls to get the documentation (example): -% pdflatex grfext.dtx -% makeindex -s gind.ist grfext.idx -% pdflatex grfext.dtx -% makeindex -s gind.ist grfext.idx -% pdflatex grfext.dtx -% -% Installation: -% TDS:tex/latex/oberdiek/grfext.sty -% TDS:doc/latex/oberdiek/grfext.pdf -% TDS:doc/latex/oberdiek/test/grfext-test1.tex -% TDS:doc/latex/oberdiek/test/grfext-test2.tex -% TDS:source/latex/oberdiek/grfext.dtx -% -%<*ignore> -\begingroup - \catcode123=1 % - \catcode125=2 % - \def\x{LaTeX2e}% -\expandafter\endgroup -\ifcase 0\ifx\install y1\fi\expandafter - \ifx\csname processbatchFile\endcsname\relax\else1\fi - \ifx\fmtname\x\else 1\fi\relax -\else\csname fi\endcsname -% -%<*install> -\input docstrip.tex -\Msg{************************************************************************} -\Msg{* Installation} -\Msg{* Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO)} -\Msg{************************************************************************} - -\keepsilent -\askforoverwritefalse - -\let\MetaPrefix\relax -\preamble - -This is a generated file. - -Project: grfext -Version: 2016/05/16 v1.2 - -Copyright (C) - 2007, 2010 Heiko Oberdiek - 2016-2019 Oberdiek Package Support Group - -This work may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either -version 1.3c of this license or (at your option) any later -version. This version of this license is in - https://www.latex-project.org/lppl/lppl-1-3c.txt -and the latest version of this license is in - https://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 Maintainers of this work are -Heiko Oberdiek and the Oberdiek Package Support Group -https://github.com/ho-tex/oberdiek/issues - - -This work consists of the main source file grfext.dtx -and the derived files - grfext.sty, grfext.pdf, grfext.ins, grfext.drv, grfext-test1.tex, - grfext-test2.tex. - -\endpreamble -\let\MetaPrefix\DoubleperCent - -\generate{% - \file{grfext.ins}{\from{grfext.dtx}{install}}% - \file{grfext.drv}{\from{grfext.dtx}{driver}}% - \usedir{tex/latex/oberdiek}% - \file{grfext.sty}{\from{grfext.dtx}{package}}% -% \usedir{doc/latex/oberdiek/test}% -% \file{grfext-test1.tex}{\from{grfext.dtx}{test1}}% -% \file{grfext-test2.tex}{\from{grfext.dtx}{test2}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{grfext.xml}{\from{grfext.dtx}{catalogue}}% -} - -\catcode32=13\relax% active space -\let =\space% -\Msg{************************************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move the following} -\Msg{* file into a directory searched by TeX:} -\Msg{*} -\Msg{* grfext.sty} -\Msg{*} -\Msg{* To produce the documentation run the file `grfext.drv'} -\Msg{* through LaTeX.} -\Msg{*} -\Msg{* Happy TeXing!} -\Msg{*} -\Msg{************************************************************************} - -\endbatchfile -% -%<*ignore> -\fi -% -%<*driver> -\NeedsTeXFormat{LaTeX2e} -\ProvidesFile{grfext.drv}% - [2016/05/16 v1.2 Manage graphics extensions (HO)]% -\documentclass{ltxdoc} -\usepackage{holtxdoc}[2011/11/22] -\begin{document} - \DocInput{grfext.dtx}% -\end{document} -% -% \fi -% -% -% \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 \~} -% -% \GetFileInfo{grfext.drv} -% -% \title{The \xpackage{grfext} package} -% \date{2016/05/16 v1.2} -% \author{Heiko Oberdiek\thanks -% {Please report any issues at \url{https://github.com/ho-tex/oberdiek/issues}}} -% -% \maketitle -% -% \begin{abstract} -% This package provides macros for adding and reordering -% graphics extensions of package \xpackage{graphics}. -% \end{abstract} -% -% \tableofcontents -% -% \section{Documentation} -% -% \subsection{Introduction} -% -% If you are not familiar with \LaTeX's graphics bundle, please -% read its documentation \xfile{grffile} \cite{graphics}. -% The bundle contains two packages for graphics inclusion: -% \xpackage{graphics} and \xpackage{graphicx}. The first one -% is loaded by the second one that adds a key value interface. -% -% Graphics files are included in both cases by macro -% \cs{includegraphics}. The file name extension can be omitted. -% Then the graphics package goes through a list of known -% extensions until it finds the graphics file. This extension list -% is set by \cs{DeclareGraphicsExtensions}. The previous contents -% of the list is overwritten. -% -% \subsection{User interface} -% -% This package \xpackage{grfext} provides macros that adds entries -% to the list or remove them. The list may be empty or even -% undefined before. It is always defined afterwards, but can -% be empty (especially after removing entries). -% -% \begin{declcs}{AppendGraphicsExtensions} * \M{ext-list}\\ -% \cs{PrependGraphicsExtensions} * \M{ext-list} -% \end{declcs} -% The argument \meta{ext-list} is a comma separated list whose -% entries are file name extensions including the dot. -% But first the entries are removed from -% \xpackage{graphics}' extension list to avoid multiple -% occurences of the same extension. -% -% Then macro \cs{AppendGraphicsExtensions} adds the entries -% after the end of \xpackage{graphics}' list, whereas -% macro \cs{PrependGraphicsExtensions} puts them in front -% of the list. -% The order matters if a graphics file is available in -% different acceptable formats. Then the first extension -% wins. -% -% The star version of these commands only adds an extensions, -% if a specific graphics rule exists for that extension. -% -% \begin{declcs}{RemoveGraphicsExtensions} \M{ext-list} -% \end{declcs} -% All occurences of file extensions in \meta{ext-list} are -% removed from \xpackage{graphics}' extension list. -% -% \subsection{Package loading} -% -% The package does not define any options. It is loaded -% as usual in \LaTeX, e.g.: -% \begin{quote} -% |\usepackage{grfext}| -% \end{quote} -% -% \begin{declcs}{PrintGraphicsExtensions} -% \end{declcs} -% Macro \cs{PrintGraphicsExtensions} writes the current -% graphics extensions list in the \xfile{.log} file. -% The macros described before do this automatically -% after their operation. -% -% \subsection{Option support for package \xpackage{graphicx}} -% -% Package \xpackage{graphicx} uses the interface of package -% \xpackage{keyval} in order to specify options for -% \cs{includegraphics}. The options can also be set using -% \begin{quote} -% |\setkeys{Gin}{|\meta{options}|}| -% \end{quote} -% The four user macros with the two star forms are available -% as options in family |Gin| as well: -% \begin{quote} -% |AppendGraphicsExtensions={|\meta{ext-list}|}|\\ -% |AppendGraphicsExtensions*={|\meta{ext-list}|}|\\ -% |PrependGraphicsExtensions={|\meta{ext-list}|}|\\ -% |PrependGraphicsExtensions*{|\meta{ext-list}|}|\\ -% |RemoveGraphicsExtensions={|\meta{ext-list}|}|\\ -% |PrintGraphicsExtensions| -% \end{quote} -% This makes it easier to locally change the extension list -% for an included graphics, e.g.: -% \begin{quote} -% |\includegraphics[RemoveGraphicsExtensions={.pdf,PDF}]{image}| -% \end{quote} -% -% \subsection{\plainTeX} -% -% \LaTeX's graphics packages can also be used with \plainTeX. -% The necessary basic \LaTeX\ macros are defined in -% \xfile{miniltx.tex}. This package \xpackage{grfext} also -% relies on it. Example: -%\begin{quote} -%\begin{verbatim} -%\input miniltx.tex\relax -%\def\Gin@driver{pdftex.def} -%\input graphicx.sty\relax -%\input grfext.sty\relax -%\resetatcatcode -%\end{verbatim} -%\end{quote} -% -% \StopEventually{ -% } -% -% \section{Implementation} -% -% \begin{macrocode} -%<*package> -% \end{macrocode} -% -% \subsection{Relead check and identification} -% Reload check, especially if the package is not used with \LaTeX. -% \begin{macrocode} -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode35=6 % # - \catcode39=12 % ' - \catcode44=12 % , - \catcode45=12 % - - \catcode46=12 % . - \catcode58=12 % : - \catcode64=11 % @ - \catcode123=1 % { - \catcode125=2 % } - \expandafter\let\expandafter\x\csname ver@grfext.sty\endcsname - \ifx\x\relax % plain-TeX, first loading - \else - \def\empty{}% - \ifx\x\empty % LaTeX, first loading, - % variable is initialized, but \ProvidesPackage not yet seen - \else - \expandafter\ifx\csname PackageInfo\endcsname\relax - \def\x#1#2{% - \immediate\write-1{Package #1 Info: #2.}% - }% - \else - \def\x#1#2{\PackageInfo{#1}{#2, stopped}}% - \fi - \x{grfext}{The package is already loaded}% - \aftergroup\endinput - \fi - \fi -\endgroup% -% \end{macrocode} -% Package identification: -% \begin{macrocode} -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode35=6 % # - \catcode39=12 % ' - \catcode40=12 % ( - \catcode41=12 % ) - \catcode44=12 % , - \catcode45=12 % - - \catcode46=12 % . - \catcode47=12 % / - \catcode58=12 % : - \catcode64=11 % @ - \catcode91=12 % [ - \catcode93=12 % ] - \catcode123=1 % { - \catcode125=2 % } - \expandafter\ifx\csname ProvidesPackage\endcsname\relax - \def\x#1#2#3[#4]{\endgroup - \immediate\write-1{Package: #3 #4}% - \xdef#1{#4}% - }% - \else - \def\x#1#2[#3]{\endgroup - #2[{#3}]% - \ifx#1\@undefined - \xdef#1{#3}% - \fi - \ifx#1\relax - \xdef#1{#3}% - \fi - }% - \fi -\expandafter\x\csname ver@grfext.sty\endcsname -\ProvidesPackage{grfext}% - [2016/05/16 v1.2 Manage graphics extensions (HO)]% -% \end{macrocode} -% -% \subsection{Catcodes} -% -% \begin{macrocode} -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode123=1 % { - \catcode125=2 % } - \catcode64=11 % @ - \def\x{\endgroup - \expandafter\edef\csname grfext@AtEnd\endcsname{% - \endlinechar=\the\endlinechar\relax - \catcode13=\the\catcode13\relax - \catcode32=\the\catcode32\relax - \catcode35=\the\catcode35\relax - \catcode61=\the\catcode61\relax - \catcode64=\the\catcode64\relax - \catcode123=\the\catcode123\relax - \catcode125=\the\catcode125\relax - }% - }% -\x\catcode61\catcode48\catcode32=10\relax% -\catcode13=5 % ^^M -\endlinechar=13 % -\catcode35=6 % # -\catcode64=11 % @ -\catcode123=1 % { -\catcode125=2 % } -\def\TMP@EnsureCode#1#2{% - \edef\grfext@AtEnd{% - \grfext@AtEnd - \catcode#1=\the\catcode#1\relax - }% - \catcode#1=#2\relax -} -\TMP@EnsureCode{42}{12}% * -\TMP@EnsureCode{44}{12}% , -\TMP@EnsureCode{47}{12}% / -\TMP@EnsureCode{58}{12}% : -\TMP@EnsureCode{60}{12}% < -\TMP@EnsureCode{62}{12}% > -\TMP@EnsureCode{91}{12}% [ -\TMP@EnsureCode{93}{12}% ] -\edef\grfext@AtEnd{\grfext@AtEnd\noexpand\endinput} -% \end{macrocode} -% -% \subsection{\plainTeX} -% -% \begin{macro}{\@expandtwoargs} -% Requirement is \xfile{miniltx.tex}, but we need also -% \LaTeX's \cs{@expandtwoargs}. -% \begin{macrocode} -\@ifundefined{@expandtwoargs}{% - \def\@expandtwoargs#1#2#3{% - \edef\reserved@a{\noexpand#1{#2}{#3}}% - \reserved@a - }% -}{} -% \end{macrocode} -% \end{macro} -% -% \subsection{Add} -% -% \begin{macro}{\AppendGraphicsExtensions} -% \begin{macrocode} -\newcommand*{\AppendGraphicsExtensions}{% - \@ifundefined{Gin@extensions}{% - \let\Gin@extensions\@empty - }{}% - \@ifstar{\grfext@Append\grfext@Check}{\grfext@Append\grfext@@Add}% -}% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\grfext@Append} -% \begin{macrocode} -\def\grfext@Append#1#2{% - \let\grfext@Print\@gobble - \edef\grfext@next{% - \noexpand\grfext@Add\noexpand#1{% - \zap@space#2 \@empty - }{\noexpand\Gin@extensions,}{}% - }% - \grfext@next - \let\grfext@Print\grfext@@Print - \grfext@Print\AppendGraphicsExtensions -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\PrependGraphicsExtensions} -% \begin{macrocode} -\newcommand*{\PrependGraphicsExtensions}{% - \@ifundefined{Gin@extensions}{% - \let\Gin@extensions\@empty - }{}% - \@ifstar{\grfext@Prepend\grfext@Check}{\grfext@Prepend\grfext@@Add}% -}% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\grfext@Prepend} -% \begin{macrocode} -\def\grfext@Prepend#1#2{% - \let\grfext@Print\@gobble - \edef\grfext@next{% - \noexpand\grfext@Add\noexpand#1{% - \zap@space#2 \@empty - }{}{,\noexpand\Gin@extensions}% - }% - \grfext@next - \let\grfext@Print\grfext@@Print - \grfext@Print\PrependGraphicsExtensions -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\grfext@Add} -% \begin{macrocode} -\def\grfext@Add#1#2{% - #1{#2}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\grfext@@Add} -% \begin{macrocode} -\def\grfext@@Add#1#2#3{% - \RemoveGraphicsExtensions{#1}% - \ifx\Gin@extensions\@empty - \def\Gin@extensions{#1}% - \else - \edef\Gin@extensions{#2#1#3}% - \fi -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Check} -% -% \begin{macro}{\grfext@Check} -% \begin{macrocode} -\def\grfext@Check#1{% - \let\grfext@tmp\@empty - \@for\grfext@ext:=#1\do{% - \@ifundefined{Gin@rule@\grfext@ext}{% - }{% - \ifx\grfext@tmp\@empty - \let\grfext@tmp\grfext@ext - \else - \edef\grfext@tmp{\grfext@tmp,\grfext@ext}% - \fi - }% - }% - \ifx\grfext@tmp\@empty - \def\grfext@next##1##2{}% - \else - \edef\grfext@next{% - \noexpand\grfext@@Add{\grfext@tmp}% - }% - \fi - \grfext@next -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Remove} -% -% \begin{macro}{\RemoveGraphicsExtensions} -% \begin{macrocode} -\newcommand*{\RemoveGraphicsExtensions}[1]{% - \@ifundefined{Gin@extensions}{% - \def\Gin@extensions{}% - }{% - \edef\grfext@tmp{\zap@space#1 \@empty}% - \@for\grfext@ext:=\grfext@tmp\do{% - \def\grfext@next{% - \let\grfext@tmp\Gin@extensions - \@expandtwoargs - \@removeelement\grfext@ext\Gin@extensions\Gin@extensions - \ifx\grfext@tmp\Gin@extensions - \let\grfext@next\relax - \fi - \grfext@next - }% - \grfext@next - }% - }% - \grfext@Print\RemoveGraphicsExtensions -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Print} -% -% \begin{macrocode} -\RequirePackage{infwarerr}[2007/09/09] -% \end{macrocode} -% -% \begin{macro}{\PrintGraphicsExtensions} -% \begin{macrocode} -\def\PrintGraphicsExtensions{% - \grfext@Print\PrintGraphicsExtensions -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\grfext@Print} -% \begin{macrocode} -\def\grfext@Print#1{% - \@PackageInfo{grfext}{% - Graphics extension search list:\MessageBreak - \@ifundefined{Gin@extensions}{% - % - }{% - [\Gin@extensions]% - }\MessageBreak - \string#1% - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\grfext@@Print} -% \begin{macrocode} -\let\grfext@@Print\grfext@Print -% \end{macrocode} -% \end{macro} -% -% \subsection{Defining options for package \xpackage{graphicx}} -% -% \begin{macrocode} -\RequirePackage{kvdefinekeys}[2010/03/01] -\kv@define@key{Gin}{AppendGraphicsExtensions}{% - \AppendGraphicsExtensions{#1}% -} -\kv@define@key{Gin}{AppendGraphicsExtensions*}{% - \AppendGraphicsExtensions*{#1}% -} -\kv@define@key{Gin}{PrependGraphicsExtensions}{% - \PrependGraphicsExtensions{#1}% -} -\kv@define@key{Gin}{PrependGraphicsExtensions*}{% - \PrependGraphicsExtensions*{#1}% -} -\kv@define@key{Gin}{RemoveGraphicsExtensions}{% - \RemoveGraphicsExtensions{#1}% -} -\kv@define@key{Gin}{PrintGraphicsExtensions}[]{% - \PrintGraphicsExtensions -} -% \end{macrocode} -% -% \begin{macrocode} -\grfext@AtEnd% -% -% \end{macrocode} -% -% \section{Test} -% -% Load \xfile{miniltx} for standard catcode test. -% \begin{macrocode} -%<*test1> -\input miniltx.tex\relax -\resetatcatcode -% -% \end{macrocode} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input grfext.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Macro tests} -% -% \subsubsection{Preamble} -% -% \begin{macrocode} -%<*test2> -\NeedsTeXFormat{LaTeX2e} -\nofiles -\documentclass{article} -\usepackage[pdftex]{graphics} -\usepackage{grfext}[2016/05/16] -\usepackage{qstest} -\IncludeTests{*} -\LogTests{log}{*}{*} -\makeatletter -% \end{macrocode} -% -% \subsubsection{Detection of unwanted space} -% -% \begin{macrocode} -\let\orig@qstest\qstest -\let\orig@endqstest\endqstest -\def\qstest#1#2{% - \orig@qstest{#1}{#2}% - \setbox0\hbox\bgroup\begingroup\ignorespaces -} -\def\endqstest{% - \endgroup\egroup - \Expect*{\the\wd0}{0.0pt}% - \orig@endqstest -} -% \end{macrocode} -% -% \subsubsection{Generic test macros} -% -% \begin{macrocode} -\def\Test{\@ifnextchar\bgroup\TestInitList\TestInitCmd}% -\def\TestInitList#1{% - \def\Gin@extensions{#1}% - \@Test -} -\def\TestInitCmd#1{% - \let\Gin@extensions#1\relax - \@Test -} -\def\@Test#1#2{% - \TestCmd{#1}% - \expandafter\Expect\expandafter*{\Gin@extensions}{#2}% -} -% \end{macrocode} -% -% \subsubsection{Test for \cs{AppendGraphicsExtensions}} -% -% \begin{macrocode} -\begin{qstest}{AppendGraphicsExtensions}{AppendGraphicsExtensions} - \let\TestCmd\AppendGraphicsExtensions - \Test\@undefined{.test}{.test}% - \Test\relax{.test}{.test}% - \Test{}{.test}{.test}% - \Test{.foo}{.test}{.foo,.test}% - \Test{.foo,.bar}{.test}{.foo,.bar,.test}% - \Test{.test}{.test}{.test}% - \Test{.foo,.test}{.test}{.foo,.test}% - \Test{.test,.foo}{.test}{.foo,.test}% - \Test{.foo,.test,.bar}{.test}{.foo,.bar,.test}% - \Test{.foo}{.test,.bar}{.foo,.test,.bar}% - \Test{.foo}{.test,.foo}{.test,.foo}% - \Test{.foo}{ .test ,.bar , .x, .y }{.foo,.test,.bar,.x,.y}% - \def\TestCmd{\AppendGraphicsExtensions*}% - \Test\@undefined{.test}{}% - \Test\relax{.test}{}% - \Test{}{.test}{}% - \Test{.test}{.test}{.test}% - \Test{.foo}{.test}{.foo}% - \Test{.foo,.bar}{.test}{.foo,.bar}% - \Test{.test}{.test}{.test}% - \Test{.foo,.test}{.test}{.foo,.test}% - \Test{.test,.foo}{.test}{.test,.foo}% - \Test{.foo,.test,.bar}{.test}{.foo,.test,.bar}% - \Test{.foo}{.test,.bar}{.foo}% - \Test{.foo}{.test,.foo}{.foo}% - \DeclareGraphicsRule{.test}{test}{.test}{}% - \Test\@undefined{.test}{.test}% - \Test\relax{.test}{.test}% - \Test{}{.test}{.test}% - \Test{.foo}{.test}{.foo,.test}% - \Test{.foo,.bar}{.test}{.foo,.bar,.test}% - \Test{.test}{.test}{.test}% - \Test{.foo,.test}{.test}{.foo,.test}% - \Test{.test,.foo}{.test}{.foo,.test}% - \Test{.foo,.test,.bar}{.test}{.foo,.bar,.test}% - \Test{.foo}{.test,.bar}{.foo,.test}% - \Test{.foo}{.test,.foo}{.foo,.test}% - \DeclareGraphicsRule{.bar}{bar}{.bar}{}% - \Test{.foo}{.test,.bar}{.foo,.test,.bar}% - \Test{.bar}{.test,.bar}{.test,.bar}% - \Test{.bar}{.bar,.test}{.bar,.test}% -\end{qstest} -% \end{macrocode} -% -% \subsubsection{Test for \cs{PrependGraphicsExtensions}} -% -% \begin{macrocode} -\begin{qstest}{PrependGraphicsExtensions}{PrependGraphicsExtensions} - \let\TestCmd\PrependGraphicsExtensions - \Test\@undefined{.test}{.test}% - \Test\relax{.test}{.test}% - \Test{}{.test}{.test}% - \Test{.foo}{.test}{.test,.foo}% - \Test{.foo,.bar}{.test}{.test,.foo,.bar}% - \Test{.test}{.test}{.test}% - \Test{.foo,.test}{.test}{.test,.foo}% - \Test{.test,.foo}{.test}{.test,.foo}% - \Test{.foo,.test,.bar}{.test}{.test,.foo,.bar}% - \Test{.foo}{.test,.bar}{.test,.bar,.foo}% - \Test{.foo}{.test,.foo}{.test,.foo}% - \Test{.foo}{ .test ,.bar , .x, .y }{.test,.bar,.x,.y,.foo}% - \def\TestCmd{\PrependGraphicsExtensions*}% - \Test\@undefined{.test}{}% - \Test\relax{.test}{}% - \Test{}{.test}{}% - \Test{.test}{.test}{.test}% - \Test{.foo}{.test}{.foo}% - \Test{.foo,.bar}{.test}{.foo,.bar}% - \Test{.test}{.test}{.test}% - \Test{.foo,.test}{.test}{.foo,.test}% - \Test{.test,.foo}{.test}{.test,.foo}% - \Test{.foo,.test,.bar}{.test}{.foo,.test,.bar}% - \DeclareGraphicsRule{.test}{test}{.test}{}% - \Test\@undefined{.test}{.test}% - \Test\relax{.test}{.test}% - \Test{}{.test}{.test}% - \Test{.foo}{.test}{.test,.foo}% - \Test{.foo,.bar}{.test}{.test,.foo,.bar}% - \Test{.test}{.test}{.test}% - \Test{.foo,.test}{.test}{.test,.foo}% - \Test{.test,.foo}{.test}{.test,.foo}% - \Test{.foo,.test,.bar}{.test}{.test,.foo,.bar}% - \Test{.foo}{.test,.bar}{.test,.foo}% - \Test{.foo}{.test,.foo}{.test,.foo}% - \DeclareGraphicsRule{.bar}{bar}{.bar}{}% - \Test{.foo}{.test,.bar}{.test,.bar,.foo}% - \Test{.bar}{.test,.bar}{.test,.bar}% - \Test{.bar}{.bar,.test}{.bar,.test}% -\end{qstest} -% \end{macrocode} -% -% \subsubsection{Test for \cs{RemoveGraphicsExtensions}} -% -% \begin{macrocode} -\begin{qstest}{RemoveGraphicsExtensions}{RemoveGraphicsExtensions} - \let\TestCmd\RemoveGraphicsExtensions - \Test\@undefined{.test}{}% - \Test\relax{.test}{}% - \Test{}{.test}{}% - \Test{.foo}{.test}{.foo}% - \Test{.foo,.bar}{.test}{.foo,.bar}% - \Test{.test}{.test}{}% - \Test{.foo,.test}{.test}{.foo}% - \Test{.test,.foo}{.test}{.foo}% - \Test{.foo,.test,.bar}{.test}{.foo,.bar}% - \Test{.test,.test}{.test}{}% - \Test{.foo,.test,.bar,.test,.test,.bar}{.test}{.foo,.bar,.bar}% - \Test{.foo,.test,.bar,.foo,.test,.bar}{.test,.bar}{.foo,.foo}% - \Test{.foo,.test,.bar,.foo,.test,.bar}{ .test , .bar }{.foo,.foo}% -\end{qstest} -% \end{macrocode} -% -% \begin{macrocode} -\begin{document} -\end{document} -% -% \end{macrocode} -% -% \section{Installation} -% -% \subsection{Download} -% -% \paragraph{Package.} This package is available on -% CTAN\footnote{\CTANpkg{grfext}}: -% \begin{description} -% \item[\CTAN{macros/latex/contrib/oberdiek/grfext.dtx}] The source file. -% \item[\CTAN{macros/latex/contrib/oberdiek/grfext.pdf}] Documentation. -% \end{description} -% -% -% \paragraph{Bundle.} All the packages of the bundle `oberdiek' -% are also available in a TDS compliant ZIP archive. There -% the packages are already unpacked and the documentation files -% are generated. The files and directories obey the TDS standard. -% \begin{description} -% \item[\CTANinstall{install/macros/latex/contrib/oberdiek.tds.zip}] -% \end{description} -% \emph{TDS} refers to the standard ``A Directory Structure -% for \TeX\ Files'' (\CTANpkg{tds}). Directories -% with \xfile{texmf} in their name are usually organized this way. -% -% \subsection{Bundle installation} -% -% \paragraph{Unpacking.} Unpack the \xfile{oberdiek.tds.zip} in the -% TDS tree (also known as \xfile{texmf} tree) of your choice. -% Example (linux): -% \begin{quote} -% |unzip oberdiek.tds.zip -d ~/texmf| -% \end{quote} -% -% \subsection{Package installation} -% -% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting -% \docstrip\ archive. The files are extracted by running the -% \xfile{.dtx} through \plainTeX: -% \begin{quote} -% \verb|tex grfext.dtx| -% \end{quote} -% -% \paragraph{TDS.} Now the different files must be moved into -% the different directories in your installation TDS tree -% (also known as \xfile{texmf} tree): -% \begin{quote} -% \def\t{^^A -% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} -% grfext.sty & tex/latex/oberdiek/grfext.sty\\ -% grfext.pdf & doc/latex/oberdiek/grfext.pdf\\ -% test/grfext-test1.tex & doc/latex/oberdiek/test/grfext-test1.tex\\ -% test/grfext-test2.tex & doc/latex/oberdiek/test/grfext-test2.tex\\ -% grfext.dtx & source/latex/oberdiek/grfext.dtx\\ -% \end{tabular}^^A -% }^^A -% \sbox0{\t}^^A -% \ifdim\wd0>\linewidth -% \begingroup -% \advance\linewidth by\leftmargin -% \advance\linewidth by\rightmargin -% \edef\x{\endgroup -% \def\noexpand\lw{\the\linewidth}^^A -% }\x -% \def\lwbox{^^A -% \leavevmode -% \hbox to \linewidth{^^A -% \kern-\leftmargin\relax -% \hss -% \usebox0 -% \hss -% \kern-\rightmargin\relax -% }^^A -% }^^A -% \ifdim\wd0>\lw -% \sbox0{\small\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\footnotesize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\scriptsize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\tiny\t}^^A -% \ifdim\wd0>\linewidth -% \lwbox -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \end{quote} -% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's -% TDS installing feature, then some files can already be in the right -% place, see the documentation of \docstrip. -% -% \subsection{Refresh file name databases} -% -% If your \TeX~distribution -% (\TeX\,Live, \mikTeX, \dots) relies on file name databases, you must refresh -% these. For example, \TeX\,Live\ users run \verb|texhash| or -% \verb|mktexlsr|. -% -% \subsection{Some details for the interested} -% -% \paragraph{Unpacking with \LaTeX.} -% The \xfile{.dtx} chooses its action depending on the format: -% \begin{description} -% \item[\plainTeX:] Run \docstrip\ and extract the files. -% \item[\LaTeX:] Generate the documentation. -% \end{description} -% If you insist on using \LaTeX\ for \docstrip\ (really, -% \docstrip\ does not need \LaTeX), then inform the autodetect routine -% about your intention: -% \begin{quote} -% \verb|latex \let\install=y\input{grfext.dtx}| -% \end{quote} -% Do not forget to quote the argument according to the demands -% of your shell. -% -% \paragraph{Generating the documentation.} -% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate -% the documentation. The process can be configured by the -% configuration file \xfile{ltxdoc.cfg}. For instance, put this -% line into this file, if you want to have A4 as paper format: -% \begin{quote} -% \verb|\PassOptionsToClass{a4paper}{article}| -% \end{quote} -% An example follows how to generate the -% documentation with pdf\LaTeX: -% \begin{quote} -%\begin{verbatim} -%pdflatex grfext.dtx -%makeindex -s gind.ist grfext.idx -%pdflatex grfext.dtx -%makeindex -s gind.ist grfext.idx -%pdflatex grfext.dtx -%\end{verbatim} -% \end{quote} -% -% \begin{thebibliography}{9} -% -% \bibitem{graphics} -% David Carlisle, Sebastian Rahtz: \textit{The \xpackage{graphics} package}; -% 2006/02/20 v1.0o; -% \CTAN{macros/latex/required/graphics/graphics.dtx}. -% -% \end{thebibliography} -% -% \begin{History} -% \begin{Version}{2007/09/30 v1.0} -% \item -% First public version. -% \end{Version} -% \begin{Version}{2010/08/19 v1.1} -% \item -% User macros are also made available as keyval options for -% package \xpackage{graphicx}. -% \end{Version} -% \begin{Version}{2016/05/16 v1.2} -% \item -% Documentation updates. -% \end{Version} -% \end{History} -% -% \PrintIndex -% -% \Finale -\endinput diff --git a/macros/latex/contrib/oberdiek/grfext.pdf b/macros/latex/contrib/oberdiek/grfext.pdf deleted file mode 100644 index 267c75785f..0000000000 Binary files a/macros/latex/contrib/oberdiek/grfext.pdf and /dev/null differ diff --git a/macros/latex/contrib/oberdiek/hologo.dtx b/macros/latex/contrib/oberdiek/hologo.dtx index a94dd32e6d..0985ff21d9 100644 --- a/macros/latex/contrib/oberdiek/hologo.dtx +++ b/macros/latex/contrib/oberdiek/hologo.dtx @@ -68,9 +68,6 @@ % TDS:tex/generic/oberdiek/hologo.sty % TDS:doc/latex/oberdiek/hologo.pdf % TDS:doc/latex/oberdiek/example/hologo-example.tex -% TDS:doc/latex/oberdiek/test/hologo-test1.tex -% TDS:doc/latex/oberdiek/test/hologo-test-spacefactor.tex -% TDS:doc/latex/oberdiek/test/hologo-test-list.tex % TDS:source/latex/oberdiek/hologo.dtx % %<*ignore> @@ -146,10 +143,6 @@ and the derived files % \file{hologo-test1.tex}{\from{hologo.dtx}{test1}}% % \file{hologo-test-spacefactor.tex}{\from{hologo.dtx}{test-spacefactor}}% % \file{hologo-test-list.tex}{\from{hologo.dtx}{test-list}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{hologo.xml}{\from{hologo.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -192,21 +185,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{hologo.drv} % @@ -4455,250 +4433,7 @@ $ #1{\string ^^^^0395}{\string ^^^^03b5}% \HOLOGO@AtEnd% % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input hologo.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Spacefactor} -% -% The space factor must be 1000 after a logo. If it is greater 1000 -% then the following space is a space after a sentence closing point. -% If the space factor is smaller 1000 then an immediate following -% dot is interpreted as abbreviation, not sentence closing point. -% -% \begin{macrocode} -%<*test-spacefactor> -\NeedsTeXFormat{LaTeX2e} -\documentclass{article} -\usepackage{hologo}[2017/05/01] -\usepackage{kvsetkeys} -\usepackage{qstest} -\IncludeTests{*} -\LogTests{log}{*}{*} -\begin{document} -\begin{qstest}{spacefactor}{spacefactor} -\newcommand*{\Test}[1]{% - \sbox0{% - \hologo{#1}% - \Expect*{1000 (#1)}*{\the\spacefactor\space(#1)}% - }% -}% -\makeatletter -\def\TestList{} -\def\hologoEntry#1#2#3{% - \edef\TestList{% - \ifx\TestList\@empty - \else - \TestList,% - \fi - #1% - \ifx\\#2\\% - \else - ={variant=#2}% - \fi - }% -} -\hologoList -\expandafter\kv@parse@normalized\expandafter{% - \TestList -}{% - \begingroup - \let\@logo=\kv@key - \ifx\kv@value\relax - \else - \expandafter\hologoLogoSetup\expandafter\@logo\expandafter{% - \kv@value - }% - \fi - \Test\@logo - \endgroup - \@gobbletwo -} -\end{qstest} -\end{document} -% -% \end{macrocode} -% -% \subsection{Complete list} -% -% \begin{macrocode} -%<*test-list> -\NeedsTeXFormat{LaTeX2e} -\documentclass[12pt,a4paper]{article} -\usepackage{hologo}[2017/05/01] -\usepackage[T1]{fontenc} -\usepackage{lmodern} -\usepackage{parskip} -\usepackage[unicode]{hyperref}[2011/09/28] -\usepackage{bookmark}[2011/09/19] -\bookmarksetup{% - numbered,% - open,% - openlevel=2,% -} -\renewcommand*{\contentsname}{List of logos} -\begin{document} -\tableofcontents -\def\TestFont#1#2#3#4#5#6{% - \begingroup - \usefont{#3}{#4}{#5}{#6}% - \HologoVariant{#1}{#2}/\hologoVariant{#1}{#2}% - \quad - \begingroup\scriptsize\hologoVariant{#1}{#2}\endgroup - \quad - \endgroup - (#3/#4/#5/#6)% - \par -} -\makeatletter -\def\hologoEntry#1#2#3{% - \section{% - \HologoVariant{#1}{#2}/\hologoVariant{#1}{#2} % - {[#1\ifx\\#2\\\else\space(#2)\fi]}% hash-ok - }% braces around [] because of bug in tex4ht - \begingroup - \hypersetup{unicode=false}% - \bookmark[% - dest=\@currentHref,% - rellevel=1,% - keeplevel,% - ]{% - \HologoVariant{#1}{#2}/\hologoVariant{#1}{#2} % - (PDFDocEncoding)% - }% - \endgroup - \TestFont{#1}{#2}{OT1}{cmr}{m}{n}% - \TestFont{#1}{#2}{OT1}{cmss}{m}{n}% - \TestFont{#1}{#2}{OT1}{cmr}{b}{n}% - \TestFont{#1}{#2}{OT1}{cmr}{m}{it}% - \TestFont{#1}{#2}{OT1}{cmtt}{m}{n}% - \TestFont{#1}{#2}{T1}{lmr}{m}{n}% - \TestFont{#1}{#2}{T1}{lmss}{m}{n}% - \TestFont{#1}{#2}{T1}{lmr}{b}{n}% - \TestFont{#1}{#2}{T1}{lmr}{m}{it}% - \TestFont{#1}{#2}{T1}{lmtt}{m}{n}% - \TestFont{#1}{#2}{T1}{lmvtt}{m}{n}% - \TestFont{#1}{#2}{T1}{qtm}{m}{n}% - \TestFont{#1}{#2}{T1}{qhv}{m}{n}% - \TestFont{#1}{#2}{T1}{qtm}{b}{n}% - \TestFont{#1}{#2}{T1}{qtm}{m}{it}% - \TestFont{#1}{#2}{T1}{qcr}{m}{n}% - \newpage -} -\makeatother -\hologoList -\end{document} -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -4748,9 +4483,6 @@ $ #1{\string ^^^^0395}{\string ^^^^03b5}% % hologo.sty & tex/generic/oberdiek/hologo.sty\\ % hologo.pdf & doc/latex/oberdiek/hologo.pdf\\ % example/hologo-example.tex & doc/latex/oberdiek/example/hologo-example.tex\\ -% test/hologo-test1.tex & doc/latex/oberdiek/test/hologo-test1.tex\\ -% test/hologo-test-spacefactor.tex & doc/latex/oberdiek/test/hologo-test-spacefactor.tex\\ -% test/hologo-test-list.tex & doc/latex/oberdiek/test/hologo-test-list.tex\\ % hologo.dtx & source/latex/oberdiek/hologo.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/hologo.pdf b/macros/latex/contrib/oberdiek/hologo.pdf index bed7b7c96a..2a5dbfc9b7 100644 Binary files a/macros/latex/contrib/oberdiek/hologo.pdf and b/macros/latex/contrib/oberdiek/hologo.pdf differ diff --git a/macros/latex/contrib/oberdiek/holtxdoc.dtx b/macros/latex/contrib/oberdiek/holtxdoc.dtx index 61057855b3..6c31061ccf 100644 --- a/macros/latex/contrib/oberdiek/holtxdoc.dtx +++ b/macros/latex/contrib/oberdiek/holtxdoc.dtx @@ -126,10 +126,6 @@ and the derived files \file{holtxdoc.drv}{\from{holtxdoc.dtx}{driver}}% \usedir{tex/latex/oberdiek}% \file{holtxdoc.sty}{\from{holtxdoc.dtx}{package}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{holtxdoc.xml}{\from{holtxdoc.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -166,21 +162,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{holtxdoc.drv} % diff --git a/macros/latex/contrib/oberdiek/holtxdoc.pdf b/macros/latex/contrib/oberdiek/holtxdoc.pdf index 804f85a5c8..f59f98fc88 100644 Binary files a/macros/latex/contrib/oberdiek/holtxdoc.pdf and b/macros/latex/contrib/oberdiek/holtxdoc.pdf differ diff --git a/macros/latex/contrib/oberdiek/hopatch.dtx b/macros/latex/contrib/oberdiek/hopatch.dtx index 4957ec3e83..17712fc2cc 100644 --- a/macros/latex/contrib/oberdiek/hopatch.dtx +++ b/macros/latex/contrib/oberdiek/hopatch.dtx @@ -63,8 +63,6 @@ % Installation: % TDS:tex/latex/oberdiek/hopatch.sty % TDS:doc/latex/oberdiek/hopatch.pdf -% TDS:doc/latex/oberdiek/test/hopatch-test1.tex -% TDS:doc/latex/oberdiek/test/hopatch-test2.tex % TDS:source/latex/oberdiek/hopatch.dtx % %<*ignore> @@ -133,10 +131,6 @@ and the derived files % \usedir{doc/latex/oberdiek/test}% % \file{hopatch-test1.tex}{\from{hopatch.dtx}{test1}}% % \file{hopatch-test2.tex}{\from{hopatch.dtx}{test2}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{hopatch.xml}{\from{hopatch.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -177,21 +171,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{hopatch.drv} % @@ -517,176 +496,7 @@ and the derived files % \begin{macrocode} % % \end{macrocode} -% -% \section{Test} -% -% \begin{macrocode} -%<*test1> -\def\LoadCommand{\RequirePackage{hopatch}[2016/05/16]} -% -% \end{macrocode} -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input hopatch.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test2> -\NeedsTeXFormat{LaTeX2e} -\providecommand\variant{0} -\RequirePackage{filecontents} -\begin{filecontents}{foo.sty} -\ProvidesPackage{foo} -\def\msg#{\immediate\write16} -\def\foo#1{% - \msg{\fooformat{#1}}% -} -\def\fooformat#1{[#1]}% hash-ok -\foo{* Executing foo at package loading} -\end{filecontents} - -\ifnum\variant=1 % - \documentclass{memoir}% -\else - \documentclass{article}% -\fi - -\ifcase\variant\relax -\or % 1 -\or % 2 - \usepackage{etoolbox}% -\or % 3 - \usepackage{scrlfile}% -\or % 4 - \usepackage{filehook}% -\fi - -\AtBeginDocument{\foo{* AtBeginDocument before hopatch}} -\usepackage{hopatch} -\AtBeginDocument{\foo{* AtBeginDocument after hopatch}} - -\makeatletter -\hopatch@AfterPackage{foo}{% - \def\fooformat#1{<<#1>>}% -} -\makeatother - -\AtBeginDocument{\foo{* AtBeginDocument before foo}} -\usepackage{foo} -\AtBeginDocument{\foo{* AtBeginDocument after foo}} - -\foo{* Executing in preamble} - -\begin{document} -\foo{* Executing in document} -\end{document} -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -735,8 +545,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % hopatch.sty & tex/latex/oberdiek/hopatch.sty\\ % hopatch.pdf & doc/latex/oberdiek/hopatch.pdf\\ -% test/hopatch-test1.tex & doc/latex/oberdiek/test/hopatch-test1.tex\\ -% test/hopatch-test2.tex & doc/latex/oberdiek/test/hopatch-test2.tex\\ % hopatch.dtx & source/latex/oberdiek/hopatch.dtx\\ % \end{tabular}^^A % }^^A @@ -854,31 +662,31 @@ and the derived files % Philipp Lehman: % \textit{The etoolbox Package} % 2011-01-03. -% \CTAN{macros/latex/contrib/etoolbox/etoolbox.pdf} +% \CTANpkg{etoolbox} % % \bibitem{filehook} % Martin Scharrer: % \textit{The filehook Package}; % 2011-01-09. -% \CTAN{macros/latex/contrib/filehook/filehook.pdf} +% \CTANpkg{filehook} % % \bibitem{ltxcmds} % Heiko Oberdiek: % \textit{The ltxcmds Package}; % 2010-12-12. -% \CTAN{macros/latex/contrib/oberdiek/ltxcmds.pdf} +% \CTANpkg{ltxcmds} % % \bibitem{memoir} % Peter Wilson, Lars Madsen: % \textit{The Memoir Class for Configurable Typesetting, User Guide}; % 2010. -% \CTAN{macros/latex/contrib/memoir/memman.pdf} +% \CTANpkg{memoir} % % \bibitem{scrlfile} % Markus Kohm, Jens-Uwe Morawski: % \textit{The Guide KOMA-Script}; % 2011-01-20. -% \CTAN{macros/latex/contrib/koma-script/scrguien.pdf} +% \CTANpkg{koma-script} % % \end{thebibliography} % diff --git a/macros/latex/contrib/oberdiek/hopatch.pdf b/macros/latex/contrib/oberdiek/hopatch.pdf index 3a445a5650..73d35e1b27 100644 Binary files a/macros/latex/contrib/oberdiek/hopatch.pdf and b/macros/latex/contrib/oberdiek/hopatch.pdf differ diff --git a/macros/latex/contrib/oberdiek/hycolor.dtx b/macros/latex/contrib/oberdiek/hycolor.dtx index 1a72eae9ce..d55a709153 100644 --- a/macros/latex/contrib/oberdiek/hycolor.dtx +++ b/macros/latex/contrib/oberdiek/hycolor.dtx @@ -67,13 +67,6 @@ % TDS:tex/latex/oberdiek/hycolor.sty % TDS:tex/latex/oberdiek/xcolor-patch.sty % TDS:doc/latex/oberdiek/hycolor.pdf -% TDS:doc/latex/oberdiek/test/hycolor-test1.tex -% TDS:doc/latex/oberdiek/test/hycolor-test2.tex -% TDS:doc/latex/oberdiek/test/hycolor-test3.tex -% TDS:doc/latex/oberdiek/test/hycolor-test-xcol1.tex -% TDS:doc/latex/oberdiek/test/hycolor-test-xcol2.tex -% TDS:doc/latex/oberdiek/test/hycolor-test-xcol3.tex -% TDS:doc/latex/oberdiek/test/hycolor-test-xcol4.tex % TDS:source/latex/oberdiek/hycolor.dtx % %<*ignore> @@ -151,10 +144,6 @@ and the derived files % \file{hycolor-test-xcol2.tex}{\from{hycolor.dtx}{test-xcolor,xcol2}}% % \file{hycolor-test-xcol3.tex}{\from{hycolor.dtx}{test-xcolor,xcol3}}% % \file{hycolor-test-xcol4.tex}{\from{hycolor.dtx}{test-xcolor-fbox}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{hycolor.xml}{\from{hycolor.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -226,21 +215,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{hycolor.drv} % @@ -1443,526 +1417,7 @@ and the derived files % \begin{macrocode} % % \end{macrocode} -% -% \section{Test} -% -% \begin{macrocode} -%<*test1> -\ProvidesFile{hycolor-test1.tex}[2016/05/16 test file 1] -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test2> -\ProvidesFile{hycolor-test2.tex}[2016/05/16 test file 2] -\let\pdfmatch\relax -% -% \end{macrocode} -% -% \begin{macrocode} -%\ProvidesFile{hycolor-test3.tex}[2016/05/16 test file 3] -% \end{macrocode} -% -% \begin{macrocode} -%<*test> -% \end{macrocode} -% \begin{macrocode} -\documentclass{article} - -\usepackage{qstest} -\IncludeTests{*} -\LogTests{log}{*}{*} - -\makeatletter - -\newcommand*{\TestPackageName}{test-package} -\newcommand*{\TestOptionName}{test-option} - -\newcommand\Message{} -\def\Message#1#{\immediate\write16} - -\newcommand*{\ExpectError}[2]{% - \begingroup - \global\let\saved@errhelp\errhelp - \global\let\saved@errmessage\errmessage - \let\errhelp\@gobble - \def\errmessage##1{% - \xdef\@ExpectErrorMessage{##1}% - }% - \PackageError\TestPackageName{#1}\@ehc - \def\errhelp##1{% - \global\let\errhelp\saved@errhelp - }% - \global\let\@ResultErrorMessage\@empty - \def\errmessage##1{% - \xdef\@ResultErrorMessage{##1}% - \global\let\errmessage\saved@errmessage - % \Message{[ ##1}% - % \Message{] (ignored error)}% - % \Message{}% - }% - #2% - \endgroup - \Expect*{\@ResultErrorMessage}*{\@ExpectErrorMessage}% -} -\usepackage{scrlfile} -\usepackage{hycolor}[2016/05/16] -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test1> -\begin{qstest}{NumNormalize}{num, normalize} - \def\test#1#2{% - \HyColor@NormalizeNum{#1}\cmd - \Expect*{\cmd}{#2}% - }% - \test{0}{0}% - \test{000}{0}% - \test{-1}{0}% - \test{ 0 }{0}% - \test{1.1}{1}% - \test{100}{1}% - \test{00100}{1}% - \test{99.99}{1}% - \test{0.0}{0}% - \test{00.00}{0}% - \test{0.}{0}% - \test{.0}{0}% - \test{0.1}{.1}% - \test{0.10}{.1}% - \test{0.1000}{.1}% - \test{.1000}{.1}% - \test{0.01}{.01}% - \test{0.01010}{.0101}% - \test{.0000000001}{.0000000001}% - \test{.9999999999}{.9999999999}% -\end{qstest} - -\begin{qstest}{BookmarkColor without xcolor}{bookmark, noxcolor} - \def\test#1#2{% - \HyColor@BookmarkColor{#1}\cmd\TestPackageName\TestOptionName - \Expect*{\cmd}{#2}% - }% - \test{[rgb]{1,0,0}}{1 0 0}% - \test{[gray]{0.10}}{.1 .1 .1}% - \test{}{}% - \test{[rgb]{ 1 , 1 , 0 }}{1 1 0}% - \def\errortest[#1]#2{% - \ExpectError{% - Color model `#1' is not supported\MessageBreak - without package `xcolor' in\MessageBreak - `\TestOptionName=[#1]{#2}'% hash-ok - }{% - \test{[#1]{#2}}{}% hash-ok - }% - }% - \errortest[cmyk]{1,0,0,0}% - \errortest[empty]{}% - \def\errortest#1{% - \ExpectError{% - This color specification is not supported\MessageBreak - without package `xcolor' in\MessageBreak - `\TestOptionName=#1'% - }{% - \test{#1}{}% - }% - }% -\end{qstest} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test1|test2> -\begin{qstest}{X0134 without xcolor}{X0134, noxcolor} - \def\test#1#2{% - \HyColor@XZeroOneThreeFour{#1}\cmd\TestPackageName\TestOptionName - \Expect*{\cmd}{#2}% - }% - \test{[empty]{}}{}% - \test{[rgb]{1,0,0}}{1 0 0}% - \test{[gray]{0.10}}{.1}% - \test{[cmyk]{0,1,0,0}}{0 1 0 0}% - \test{[rgb]{ 1 , 1 , 0 }}{1 1 0}% - \def\errortest[#1]#2{% - \ExpectError{% - Color model `#1' is not supported\MessageBreak - without package `xcolor' in\MessageBreak - `test-option=[#1]{#2}'% hash-ok - }{% - \HyColor@XZeroOneThreeFour{[{#1}]{#2}}\cmd - \TestPackageName\TestOptionName - \Expect{true}*{\ifx\cmd\relax true\else false\fi}% - }% - }% - \errortest[Gray]{10}% - \errortest[cmy]{1,0,0}% - \def\errortest#1{% - \ExpectError{% - This color specification is not supported\MessageBreak - without package `xcolor' in\MessageBreak - `test-option=#1'% - }{% - \HyColor@XZeroOneThreeFour{#1}\cmd\TestPackageName\TestOptionName - \Expect{true}*{\ifx\cmd\relax true\else false\fi}% - }% - }% - \errortest{yellow}% -\end{qstest} - -\begin{qstest}{HyperrefBorderColor without xcolor}% - {hyperef bordercolor, noxcolor}% - \def\test#1#2{% - \HyColor@HyperrefBorderColor{#1}\cmd\TestPackageName\TestOptionName - \Expect*{\cmd}{#2}% - }% - \test{[rgb]{1,0,0}}{1 0 0}% - \test{[gray]{0.10}}{.1 .1 .1}% - \test{[rgb]{ 1 , 1 , 0 }}{1 1 0}% - \def\errortest[#1]#2{% - \ExpectError{% - Color model `#1' is not supported\MessageBreak - without package `xcolor' in\MessageBreak - `test-option=[#1]{#2}'% hash-ok - }{% - \HyColor@HyperrefBorderColor{[{#1}]{#2}}\cmd - \TestPackageName\TestOptionName - \Expect{true}*{\ifx\cmd\relax true\else false\fi}% - }% - }% - \errortest[Gray]{10}% - \errortest[cmy]{1,0,0}% - \errortest[cmyk]{0,1,0,0}% - \def\errortest#1{% - \ExpectError{% - This color specification is not supported\MessageBreak - without package `xcolor' in\MessageBreak - `test-option=#1'% - }{% - \HyColor@HyperrefBorderColor{#1}\cmd - \TestPackageName\TestOptionName - \Expect{true}*{\ifx\cmd\relax true\else false\fi}% - }% - }% - \errortest{yellow}% -\end{qstest} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test1|test2> -\usepackage{xcolor} -\definecolor[named]{MyGreen}{rgb}{0,0.7,0} -\definecolor{mygreen}{named}{MyGreen} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test1> -\begin{qstest}{BookmarkColor with xcolor}{bookmark, xcolor} - \def\test#1#2{% - \HyColor@BookmarkColor{#1}\cmd\PackageName\OptionName - \Expect*{\cmd}{#2}% - }% - \test{[rgb]{1,0,0}}{1 0 0}% - \test{[gray]{0.10}}{.1 .1 .1}% - \test{}{}% - \test{[rgb]{ 1 , 1 , 0 }}{1 1 0}% - \test{[cmyk]{1,0,0,0}}{0 1 1}% - \test{red}{1 0 0}% - \test{cyan}{0 1 1}% - \test{red!40!blue}{.4 0 .6}% - \test{[Gray]{10}}{.66667 .66667 .66667}% - \test{[RGB]{100,200,50}}{.39217 .78432 .19609}% - \test{[wave]{363}}{.00316 0 .00316}% - \test{[wave]814}{.00797 0 0}% - \test{[HSB]{100,200,50}}{.03473 .20833 .12152}% - \test{[HTML]{A800FF}}{.65881 0 1}% - \test{[cmy]{.3,.5,.2}}{.7 .5 .8}% - \test{[cmyk]{.3,.5,.2,.1}}{.6 .4 .7}% - \test{[hsb]{.3,.5,.2}}{.12 .2 .1}% - \test{[Hsb]{120,.5,.2}}{.1 .2 .1}% - \test{[tHsb]{120,.5,.2}}{.2 .2 .1}% - \test{[named]{MyGreen}}{0 .7 0}% - \test{mygreen}{0 .7 0}% -\end{qstest} - -\begin{qstest}{HyperrefColor}{hyperref, color} - \def\test#1#2{% - \HyColor@HyperrefColor{#1}\cmd - \Expect*{\cmd}{#2}% - }% - \test{red}{red}% - \test{[rgb]{1,0,0}}{[{rgb}]{1,0,0}}% - \HyColor@HyperrefColor{}\cmd - \Expect{true}*{\ifx\cmd\relax true\else false\fi}% -\end{qstest} -% -% \end{macrocode} -% \begin{macrocode} -%<*test1|test2> -\begin{qstest}{X0134 with xcolor}{hyperref, X0134, xcolor} - \def\test#1#2{% - \HyColor@XZeroOneThreeFour{#1}\cmd\PackageName\OptionName - \Expect*{\cmd}{#2}% - }% - \test{[empty]{}}{}% - \test{[gray]{0.1}}{.1}% - \test{[rgb]{1,0.5,0.0}}{1 .5 0}% - \test{[cmyk]{0,1,0,0.5}}{0 1 0 .5}% - \test{[Gray]{10}}{.66667}% - \test{red}{1 0 0}% - \test{1 0 0}{1 0 0}% - \test{001.0 .23 0}{1 .23 0}% - \test{[named]{MyGreen}}{0 .7 0}% - \test{mygreen}{0 .7 0}% - \HyColor@XZeroOneThreeFour{}\cmd\PackageName\OptionName - \Expect{true}*{\ifx\cmd\relax true\else false\fi}% -\end{qstest} - -\begin{qstest}{FieldColor}{hyperref, field, FieldColor} - \def\test#1#2{% - \HyColor@FieldColor{#1}\cmd\PackageName\OptionName - \Expect*{\cmd}{#2}% - }% - \test{}{}% - \test{[gray]{0.7}}{.7 g}% - \test{[rgb]{1,0,0}}{1 0 0 rg}% - \test{[cmyk]{0,1,0,0}}{0 1 0 0 k}% - \test{[cmy]{.5,.4,.3}}{.5 .6 .7 rg}% -\end{qstest} -% -% \end{macrocode} -% -% \subsection{Test for package \xpackage{attachfile2}} -% -% \begin{macrocode} -%<*test3> -\def\atfi@SETRGBCOLORtest{set-rgb} -\def\atfi@SETGRAYCOLORtest{set-gray} -\def\atfi@SETCMYKCOLORtest{set-cmyk} -\def\Test#1#2#3#4#5{% - \begingroup - \setbox0=\hbox{% - \begingroup - \chardef\HyColor@PdfVersion=6 % - \HyColor@AttachfileColor{#1}\spec\inlinemacro\annot - \TestPackageName\TestOptionName - \edef\inline{\inlinemacro{test}}% - \expandafter\Expect\expandafter{\spec}{#2}% - \expandafter\Expect\expandafter{\inline}{#3}% - \expandafter\Expect\expandafter{\annot}{#4}% - \endgroup - \begingroup - \chardef\HyColor@PdfVersion=7 % - \HyColor@AttachfileColor{#1}\spec\inlinemacro\annot - \TestPackageName\TestOptionName - \edef\inline{\inlinemacro{test}}% - \expandafter\Expect\expandafter{\spec}{#2}% - \expandafter\Expect\expandafter{\inline}{#3}% - \expandafter\Expect\expandafter{\annot}{#5}% - \endgroup - }% - \Expect*{\the\wd0}{0.0pt}% - \endgroup -} -\newif\ifError -\def\TestError[#1]#2#3#4#5#6{% - \begingroup - \global\Errorfalse - \let\OrgPackageError\PackageError - \def\PackageError##1##2##3{% - \edef\TestTemp{##1}% - \ifx\TestTemp\TestPackageName - \Expect*{\ifError too many errors\else ok\fi}{ok}% - \Expect*{#6}*{##2}% - \global\Errortrue - \else - \OrgPackageError{##1}{##2}{##3}% - \fi - }% - \setbox0=\hbox{% - \begingroup - \chardef\HyColor@PdfVersion=#1 % - \HyColor@AttachfileColor{#2}\spec\inlinemacro\annot - \TestPackageName\TestOptionName - \edef\inline{\inlinemacro{test}}% - \expandafter\Expect\expandafter{\spec}{#3}% - \expandafter\Expect\expandafter{\inline}{#4}% - \expandafter\Expect\expandafter{\annot}{#5}% - \endgroup - \ifx\\#6\\% - \else - \Expect*{\ifError ok\else missing error\fi}{ok}% - \fi - }% - \Expect*{\the\wd0}{0.0pt}% - \endgroup -} -\def\NoEmptyModel{% - Color model `empty' is not permitted for option `\TestOptionName'% -} -\def\ModelNoXcolor#1#2{% - Color model `#1' is not supported\MessageBreak - without package `xcolor' in\MessageBreak - `\TestOptionName=[#1]{#2}'% hash-ok -} -\def\SpecNoXColor#1{% - This color specification is not supported\MessageBreak - without package `xcolor' in\MessageBreak - `test-option=#1'% -} -% \end{macrocode} -% -% \begin{macrocode} -\begin{qstest}{AttachfileColor}{AttachfileColor} - \Test{}{}{}{}{}% - \Test{0.1 0.2 0.3}{[rgb]{.1,.2,.3}}{.1 .2 .3 set-rgb}% - {/C[.1 .2 .3]}{/C[.1 .2 .3]}% - \Test{[gray]{0.4}}{[gray]{0.4}}{.4 set-gray}% - {/C[.4 .4 .4]}{/C[.4]}% - \Test{[rgb]{0.3,.2,.1}}{[rgb]{0.3,.2,.1}}{.3 .2 .1 set-rgb}% - {/C[.3 .2 .1]}{/C[.3 .2 .1]}% - \Test{0.0 1.0 1}{[rgb]{0,1,1}}{0 1 1 set-rgb}% - {/C[0 1 1]}{/C[0 1 1]}% - \Test{[gray]1}{[gray]1}{1 set-gray}{/C[1 1 1]}{/C[1]}% - \TestError[6]{[empty]{}}{}{}{}\NoEmptyModel - \TestError[7]{[empty]{}}{}{}{}\NoEmptyModel - \TestError[6]{[cmyk]{.1,.2,.3,.4}}{[cmyk]{.1,.2,.3,.4}}% - {.1 .2 .3 .4 set-cmyk}{}% - {\ModelNoXcolor{cmyk}{.1,.2,.3,.4}}% - \TestError[7]{[cmyk]{.1,.2,.3,.4}}{[cmyk]{.1,.2,.3,.4}}% - {.1 .2 .3 .4 set-cmyk}{/C[.1 .2 .3 .4]}{}% - \TestError[6]{red}{red}{}{}{\SpecNoXColor{red}}% - \TestError[7]{red}{red}{}{}{\SpecNoXColor{red}}% -\end{qstest} -% \end{macrocode} -% -% \begin{macrocode} -\usepackage{xcolor} -\definecolor[named]{MyGreen}{rgb}{0,0.7,0} -\definecolor{mygreen}{named}{MyGreen} -\definecolor{graynine}{gray}{0.9} -\definecolor{GraySix}{Gray}{9} -% \end{macrocode} -% -% \begin{macrocode} -\begin{qstest}{AttachfileColorX}{AttachfileColorX} - \Test{}{}{}{}{}% - \Test{0.1 0.2 0.3}{[rgb]{.1,.2,.3}}{.1 .2 .3 set-rgb}% - {/C[.1 .2 .3]}{/C[.1 .2 .3]}% - \Test{[gray]{0.4}}{[gray]{0.4}}{.4 set-gray}% - {/C[.4 .4 .4]}{/C[.4]}% - \Test{[rgb]{0.3,.2,.1}}{[rgb]{0.3,.2,.1}}{.3 .2 .1 set-rgb}% - {/C[.3 .2 .1]}{/C[.3 .2 .1]}% - \Test{0.0 1.0 1}{[rgb]{0,1,1}}{0 1 1 set-rgb}% - {/C[0 1 1]}{/C[0 1 1]}% - \Test{[gray]1}{[gray]1}{1 set-gray}{/C[1 1 1]}{/C[1]}% - \Test{red}{red}{1 0 0 set-rgb}{/C[1 0 0]}{/C[1 0 0]}% - \Test{black}{black}{0 set-gray}{/C[0 0 0]}{/C[0]}% - \Test{cyan}{cyan}{1 0 0 0 set-cmyk}{/C[0 1 1]}{/C[1 0 0 0]}% - \Test{[named]{black}}{[named]{black}}{0 0 0 set-rgb}% - {/C[0 0 0]}{/C[0 0 0]}% - \Test{[Gray]{9}}{[Gray]{9}}{.6 set-gray}{/C[.6 .6 .6]}{/C[.6]}% - \Test{[HTML]{0080FF}}{[HTML]{0080FF}}{0 .50195 1 set-rgb}% - {/C[0 .50195 1]}{/C[0 .50195 1]}% - \Test{graynine}{graynine}{.9 set-gray}{/C[.9 .9 .9]}{/C[.9]}% - \Test{GraySix}{GraySix}{.6 set-gray}{/C[.6 .6 .6]}{/C[.6]}% - \Test{[wave]{500}}{[wave]{500}}{0 1 .49846 set-rgb}% - {/C[0 1 .49846]}{/C[0 1 .49846]}% - \TestError[6]{[empty]{}}{}{}{}\NoEmptyModel - \TestError[7]{[empty]{}}{}{}{}\NoEmptyModel -\end{qstest} -% \end{macrocode} -% -% \begin{macrocode} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test> -\begin{document} -\end{document} -% -% \end{macrocode} -% -% \subsection{Test for package \xpackage{xcolor}} -% -% \begin{macrocode} -%<*test-xcolor> -\NeedsTeXFormat{LaTeX2e} -\nofiles -\documentclass{minimal} -%<*xcol1> -\usepackage{xcolor} -\usepackage{xcolor-patch}[2016/05/16] -% -%<*xcol2> -\usepackage{scrlfile} -\usepackage{xcolor-patch}[2016/05/16] -\usepackage{xcolor} -% -%<*xcol3> -\usepackage{xcolor-patch}[2016/05/16] -\usepackage{xcolor} -\begin{document} -% -\makeatletter -\newcommand*{\ColModList}{% - rgb,% - cmy,% - cmyk,% - hsb,% - Hsb,% - tHsb,% - gray,% - RGB,% - HTML,% - HSB,% - Gray,% - % wave, -} -\newcommand*{\StartModel}{rgb} -\newcommand*{\StartValues}{.1,.2,.3} -\@for\x:=\ColModList\do{% - \ifx\x\@empty - \else - \convertcolorspec\StartModel\StartValues\x\y - \typeout{* [\StartModel]{\StartValues} ==> [\x]{\y}}% - \@for\xx:=\ColModList\do{% - \ifx\xx\@empty - \else - \convertcolorspec\x\y\xx\yy - \typeout{* [\x]{\y} ==> [\xx]{\yy}}% - \fi - }% - \fi -} -%\end{document} -%\@@end -% -% \end{macrocode} -% -% \subsubsection{Test for \cs{@frameb@x}/\cs{fbox}} -% -% \begin{macrocode} -%<*test-xcolor-fbox> -\NeedsTeXFormat{LaTeX2e} -\documentclass{article} -\usepackage{xcolor} -\usepackage{xcolor-patch}[2016/05/16] -\makeatletter -\protected@edef\x{\fbox{abc}} -\let\@tempa\@undefined -\protected@edef\x{\fbox{abc}} -\makeatother -\begin{document} -\MakeUppercase{\fbox{abc}} -\end{document} -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -2012,13 +1467,6 @@ and the derived files % hycolor.sty & tex/latex/oberdiek/hycolor.sty\\ % xcolor-patch.sty & tex/latex/oberdiek/xcolor-patch.sty\\ % hycolor.pdf & doc/latex/oberdiek/hycolor.pdf\\ -% test/hycolor-test1.tex & doc/latex/oberdiek/test/hycolor-test1.tex\\ -% test/hycolor-test2.tex & doc/latex/oberdiek/test/hycolor-test2.tex\\ -% test/hycolor-test3.tex & doc/latex/oberdiek/test/hycolor-test3.tex\\ -% test/hycolor-test-xcol1.tex & doc/latex/oberdiek/test/hycolor-test-xcol1.tex\\ -% test/hycolor-test-xcol2.tex & doc/latex/oberdiek/test/hycolor-test-xcol2.tex\\ -% test/hycolor-test-xcol3.tex & doc/latex/oberdiek/test/hycolor-test-xcol3.tex\\ -% test/hycolor-test-xcol4.tex & doc/latex/oberdiek/test/hycolor-test-xcol4.tex\\ % hycolor.dtx & source/latex/oberdiek/hycolor.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/hycolor.pdf b/macros/latex/contrib/oberdiek/hycolor.pdf index 956dad2886..4dd03d9857 100644 Binary files a/macros/latex/contrib/oberdiek/hycolor.pdf and b/macros/latex/contrib/oberdiek/hycolor.pdf differ diff --git a/macros/latex/contrib/oberdiek/hypbmsec.dtx b/macros/latex/contrib/oberdiek/hypbmsec.dtx index 8862e924bc..dd26b08d2b 100644 --- a/macros/latex/contrib/oberdiek/hypbmsec.dtx +++ b/macros/latex/contrib/oberdiek/hypbmsec.dtx @@ -126,10 +126,6 @@ and the derived files \file{hypbmsec.drv}{\from{hypbmsec.dtx}{driver}}% \usedir{tex/latex/oberdiek}% \file{hypbmsec.sty}{\from{hypbmsec.dtx}{package}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{hypbmsec.xml}{\from{hypbmsec.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -166,21 +162,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{hypbmsec.drv} % diff --git a/macros/latex/contrib/oberdiek/hypbmsec.pdf b/macros/latex/contrib/oberdiek/hypbmsec.pdf index a70e3dc559..fa74435f4d 100644 Binary files a/macros/latex/contrib/oberdiek/hypbmsec.pdf and b/macros/latex/contrib/oberdiek/hypbmsec.pdf differ diff --git a/macros/latex/contrib/oberdiek/hypcap.dtx b/macros/latex/contrib/oberdiek/hypcap.dtx index 60d40a0678..a9bb106fe3 100644 --- a/macros/latex/contrib/oberdiek/hypcap.dtx +++ b/macros/latex/contrib/oberdiek/hypcap.dtx @@ -126,10 +126,6 @@ and the derived files \file{hypcap.drv}{\from{hypcap.dtx}{driver}}% \usedir{tex/latex/oberdiek}% \file{hypcap.sty}{\from{hypcap.dtx}{package}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{hypcap.xml}{\from{hypcap.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -166,21 +162,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{hypcap.drv} % diff --git a/macros/latex/contrib/oberdiek/hypcap.pdf b/macros/latex/contrib/oberdiek/hypcap.pdf index 70ffeebf81..66f5284fa7 100644 Binary files a/macros/latex/contrib/oberdiek/hypcap.pdf and b/macros/latex/contrib/oberdiek/hypcap.pdf differ diff --git a/macros/latex/contrib/oberdiek/hypdestopt.dtx b/macros/latex/contrib/oberdiek/hypdestopt.dtx index fd2a76a482..254b3af7ea 100644 --- a/macros/latex/contrib/oberdiek/hypdestopt.dtx +++ b/macros/latex/contrib/oberdiek/hypdestopt.dtx @@ -126,10 +126,6 @@ and the derived files \file{hypdestopt.drv}{\from{hypdestopt.dtx}{driver}}% \usedir{tex/latex/oberdiek}% \file{hypdestopt.sty}{\from{hypdestopt.dtx}{package}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{hypdestopt.xml}{\from{hypdestopt.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -166,21 +162,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{hypdestopt.drv} % @@ -928,7 +909,7 @@ and the derived files % \bibitem{alphalph} % Heiko Oberdiek: \textit{The \xpackage{alphalph} package}; % 2006/05/30 v1.4; -% \CTAN{macros/latex/contrib/oberdiek/alphalph.pdf}. +% \CTANpkg{alphalph}. % % \bibitem{hyperref} % Sebastian Rahtz, Heiko Oberdiek: diff --git a/macros/latex/contrib/oberdiek/hypdestopt.pdf b/macros/latex/contrib/oberdiek/hypdestopt.pdf index e8c707ff19..7d23392768 100644 Binary files a/macros/latex/contrib/oberdiek/hypdestopt.pdf and b/macros/latex/contrib/oberdiek/hypdestopt.pdf differ diff --git a/macros/latex/contrib/oberdiek/hypdoc.dtx b/macros/latex/contrib/oberdiek/hypdoc.dtx index 65771a31aa..481a53d852 100644 --- a/macros/latex/contrib/oberdiek/hypdoc.dtx +++ b/macros/latex/contrib/oberdiek/hypdoc.dtx @@ -126,10 +126,6 @@ and the derived files \file{hypdoc.drv}{\from{hypdoc.dtx}{driver}}% \usedir{tex/latex/oberdiek}% \file{hypdoc.sty}{\from{hypdoc.dtx}{package}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{hypdoc.xml}{\from{hypdoc.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -166,21 +162,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{hypdoc.drv} % diff --git a/macros/latex/contrib/oberdiek/hypdoc.pdf b/macros/latex/contrib/oberdiek/hypdoc.pdf index 6307212169..27d22afb5e 100644 Binary files a/macros/latex/contrib/oberdiek/hypdoc.pdf and b/macros/latex/contrib/oberdiek/hypdoc.pdf differ diff --git a/macros/latex/contrib/oberdiek/hypgotoe.dtx b/macros/latex/contrib/oberdiek/hypgotoe.dtx index 412c26f15a..e568ff4d91 100644 --- a/macros/latex/contrib/oberdiek/hypgotoe.dtx +++ b/macros/latex/contrib/oberdiek/hypgotoe.dtx @@ -131,10 +131,6 @@ and the derived files \file{hypgotoe.sty}{\from{hypgotoe.dtx}{package}}% \usedir{doc/latex/oberdiek}% \file{hypgotoe-example.tex}{\from{hypgotoe.dtx}{example}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{hypgotoe.xml}{\from{hypgotoe.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -171,21 +167,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{hypgotoe.drv} % diff --git a/macros/latex/contrib/oberdiek/hypgotoe.pdf b/macros/latex/contrib/oberdiek/hypgotoe.pdf index a08bf8fe80..a6f500ff66 100644 Binary files a/macros/latex/contrib/oberdiek/hypgotoe.pdf and b/macros/latex/contrib/oberdiek/hypgotoe.pdf differ diff --git a/macros/latex/contrib/oberdiek/hyphsubst.dtx b/macros/latex/contrib/oberdiek/hyphsubst.dtx index 0bf2c7821a..e0fd44bf12 100644 --- a/macros/latex/contrib/oberdiek/hyphsubst.dtx +++ b/macros/latex/contrib/oberdiek/hyphsubst.dtx @@ -66,8 +66,6 @@ % Installation: % TDS:tex/generic/oberdiek/hyphsubst.sty % TDS:doc/latex/oberdiek/hyphsubst.pdf -% TDS:doc/latex/oberdiek/test/hyphsubst-test1.tex -% TDS:doc/latex/oberdiek/test/hyphsubst-test2.tex % TDS:source/latex/oberdiek/hyphsubst.dtx % %<*ignore> @@ -139,10 +137,6 @@ and the derived files % \usedir{doc/latex/oberdiek/test}% % \file{hyphsubst-test1.tex}{\from{hyphsubst.dtx}{test1}}% % \file{hyphsubst-test2.tex}{\from{hyphsubst.dtx}{test2}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{hyphsubst.xml}{\from{hyphsubst.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -179,21 +173,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{hyphsubst.drv} % @@ -581,155 +560,7 @@ and the derived files \HyphSubst@AtEnd% % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input hyphsubst.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% -% \subsection{Main tests} -% -% \begin{macrocode} -%<*test2> -\input hyphsubst.sty\relax - -\catcode`\@=11\relax -\ifx\et@xlang\@undefined - \def\l#1{\csname l@#1\endcsname}% -\else - \def\l#1{\csname lang@#1\endcsname}% -\fi -\def\Check#1#2{% - \ifnum#1=#2\relax - \else - \@PackageError{test}{Wrong number: #1 <> #2}\@ehc - \fi -} - -\language=0\relax -\HyphSubstLet{ZeroSaved}{ngerman} -\Check{\l{USenglish}}{0}% -\HyphSubstLet{USenglish}{ngerman} -\Check{\l{USenglish}}{\l{ngerman}} -\ifnum\l{USenglish}>0 % -\else - \@PackageError{test}{\string\language\space is not updated}\@ehc -\fi -\HyphSubstLet{german}{ngerman} -\Check{\l{german}}{\l{ngerman}} -\Check{\l{USenglish}}{\l{ngerman}} -\csname @@end\endcsname\end -% -% \end{macrocode} -% -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -778,8 +609,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % hyphsubst.sty & tex/generic/oberdiek/hyphsubst.sty\\ % hyphsubst.pdf & doc/latex/oberdiek/hyphsubst.pdf\\ -% test/hyphsubst-test1.tex & doc/latex/oberdiek/test/hyphsubst-test1.tex\\ -% test/hyphsubst-test2.tex & doc/latex/oberdiek/test/hyphsubst-test2.tex\\ % hyphsubst.dtx & source/latex/oberdiek/hyphsubst.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/hyphsubst.pdf b/macros/latex/contrib/oberdiek/hyphsubst.pdf index a5ed2c4237..b050f45e1f 100644 Binary files a/macros/latex/contrib/oberdiek/hyphsubst.pdf and b/macros/latex/contrib/oberdiek/hyphsubst.pdf differ diff --git a/macros/latex/contrib/oberdiek/ifdraft.dtx b/macros/latex/contrib/oberdiek/ifdraft.dtx index e1f516cdc6..0b4918a6d0 100644 --- a/macros/latex/contrib/oberdiek/ifdraft.dtx +++ b/macros/latex/contrib/oberdiek/ifdraft.dtx @@ -126,10 +126,6 @@ and the derived files \file{ifdraft.drv}{\from{ifdraft.dtx}{driver}}% \usedir{tex/latex/oberdiek}% \file{ifdraft.sty}{\from{ifdraft.dtx}{package}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{ifdraft.xml}{\from{ifdraft.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -166,21 +162,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{ifdraft.drv} % diff --git a/macros/latex/contrib/oberdiek/ifdraft.pdf b/macros/latex/contrib/oberdiek/ifdraft.pdf index 0f091de22e..9d71e862eb 100644 Binary files a/macros/latex/contrib/oberdiek/ifdraft.pdf and b/macros/latex/contrib/oberdiek/ifdraft.pdf differ diff --git a/macros/latex/contrib/oberdiek/iflang.dtx b/macros/latex/contrib/oberdiek/iflang.dtx index c5f2b85ae9..fa784b7d45 100644 --- a/macros/latex/contrib/oberdiek/iflang.dtx +++ b/macros/latex/contrib/oberdiek/iflang.dtx @@ -67,11 +67,6 @@ % Installation: % TDS:tex/generic/oberdiek/iflang.sty % TDS:doc/latex/oberdiek/iflang.pdf -% TDS:doc/latex/oberdiek/test/iflang-test1.tex -% TDS:doc/latex/oberdiek/test/iflang-test2.tex -% TDS:doc/latex/oberdiek/test/iflang-test3.tex -% TDS:doc/latex/oberdiek/test/iflang-test4.tex -% TDS:doc/latex/oberdiek/test/iflang-test5.tex % TDS:source/latex/oberdiek/iflang.dtx % %<*ignore> @@ -147,10 +142,6 @@ and the derived files % \file{iflang-test3.tex}{\from{iflang.dtx}{test3}}% % \file{iflang-test4.tex}{\from{iflang.dtx}{test4}}% % \file{iflang-test5.tex}{\from{iflang.dtx}{test5}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{iflang.xml}{\from{iflang.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -187,21 +178,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{iflang.drv} % @@ -677,319 +653,7 @@ and the derived files \IfLang@AtEnd% % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input iflang.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Test with \LaTeX} -% -% \begin{macrocode} -%<*test2|test3> -% \end{macrocode} -% \begin{macrocode} -\NeedsTeXFormat{LaTeX2e} -%\let\pdfstrcmp\relax -\nofiles -\documentclass{minimal} -\usepackage{qstest} -\IncludeTests{*} -\LogTests{log}{*}{*} -\usepackage[english,naustrian,ngerman]{babel} -\usepackage{iflang} -\begin{document} -\begin{qstest}{IfLanguagePatterns}{language, pattern} - \def\test#1#2{% - \Expect*{\IfLanguagePatterns{#1}{true}{false}}{#2}% - }% - \test{ngerman}{true}% - \test{naustrian}{true}% - \test{english}{false}% - \test{foobar}{false}% -\end{qstest} -\begin{qstest}{IfLanguageName}{language, name} - \def\test#1#2{% - \Expect*{\IfLanguageName{#1}{true}{false}}{#2}% - }% - \test{ngerman}{true}% - \test{naustrian}{false}% - \selectlanguage{naustrian}% - \test{ngerman}{false}% - \test{naustrian}{true}% - \test{foobar}{false}% - % - \def\languagename{naustrian}% - \test{naustrian}{true}% - \test{ngerman}{false}% - % - \edef\languagename{\string naustrian}% - \test{naustrian}{true}% - \test{ngerman}{false}% - % - \def\languagename{naustrian}% - \makeatletter - \@onelevel@sanitize\languagename - \test{naustrian}{true}% - \test{ngerman}{false}% - % - \def\languagename{naustrian}% - \def\xaustrian{naustrian}% - \def\xgerman{ngerman}% - \test{\xaustrian}{true}% - \test{\xgerman}{false}% - % - \def\languagename{\xaustrian}% - \test{naustrian}{true}% - \test{ngerman}{false}% - \test{\xaustrian}{true}% - \test{\xgerman}{false}% - \test{\languagename}{true}% - \test{\languagename\space}{false}% - % - \def\languagename{\empty\xaustrian\empty}% - \test{naustrian}{true}% - \test{ngerman}{false}% - \test{\empty\xaustrian\empty}{true}% - \test{\empty\xgerman\empty}{false}% -\end{qstest} -\begin{qstest}{IfDefined}{defined} - \makeatletter - \let\foobar\relax - \Expect*{\IfLang@IfDefined{foobar}{true}{false}}{false}% - \Expect*{\ifx\foobar\relax true\else false\fi}{true}% - \let\foobar\UNDEFINED - \Expect*{\IfLang@IfDefined{foobar}{true}{false}}{false}% - \Expect*{\ifx\foobar\relax true\else false\fi}{false}% - \Expect*{\ifx\foobar\UNDEFINED true\else false\fi}{true}% -\end{qstest} -\end{document} -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Test with \plainTeX\ and \eTeX} -% -% \begin{macrocode} -%<*test4> -% \end{macrocode} -% \begin{macrocode} -%% Format `etex' based on `language.def' -\input iflang.sty -\catcode64=12 - -\def\TestGeneric#1#2#3{% - \begingroup - \edef\x{#1{#2}{true}{false}}% - \edef\y{#3}% - \ifx\x\y - \else - \errmessage{Failed test: \string#1{#2} <> #3}% - \fi - \endgroup -} -\def\TestPatterns{\TestGeneric\IfLanguagePatterns} -\def\TestName{\TestGeneric\IfLanguageName} - -\TestPatterns{USenglish}{true} -\TestPatterns{ngerman}{false} - -\TestName{USenglish}{true} -\TestName{ngerman}{false} - -\uselanguage{ngerman} - -\TestPatterns{USenglish}{false} -\TestPatterns{ngerman}{true} - -\TestName{USenglish}{false} -\TestName{ngerman}{true} - -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Test with \plainTeX\ and without \eTeX/\pdfTeX} -% -% \begin{macrocode} -%<*test5> -% \end{macrocode} -% \begin{macrocode} -%% Format `tex' (vanilla plain-TeX) -\let\ifcsname\UNDEFINED -\let\pdfstrcmp\UNDEFINED -\input iflang.sty -\catcode64=11 - -\def\TestDefined#1{% - \IfLang@IfDefined{foobar}{}{}% - \ifx\foobar#1% - \else - \errmessage{Failed test: \string\foobar <> \string#1}% - \fi -} -\let\foobar\relax -\TestDefined\relax -\let\foobar\UNDEFINED -\TestDefined\relax - -\def\strip@prefix#1>{} -\def\@onelevel@sanitize#1{% - \edef#1{\expandafter\strip@prefix\meaning#1}% -} -\def\TestCompare#1#2#3{% - \begingroup - \edef\x{% - \if\IfLang@StrEqual{#1}{#2}% - true% - \else - false% - \fi - }% - \def\expect{#3}% - \ifx\x\expect - \else - \def\a{#1}% - \@onelevel@sanitize\a - \def\b{#2}% - \@onelevel@sanitize\b - \errmessage{Failed test: `\a'='\b' <> \expect}% - \fi - \endgroup -} -\TestCompare{junk}{junk}{true} -\TestCompare{}{}{true} -\TestCompare{a}{b}{false} -\TestCompare{aa}{bb}{false} -\def\a{ax} -\def\b{bx} -\def\c{\a\b} -\def\d{\c\b} -\def\exch#1#2{#2#1} -\def\gobble#1{} -\TestCompare{\gobble a}{}{true} -\TestCompare{}{\gobble a}{true} -\TestCompare{a\exch xyb}{ayxb}{true} -\TestCompare{\c}{\c}{true} -\TestCompare{\d}{\c\b}{true} - -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -1038,11 +702,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % iflang.sty & tex/generic/oberdiek/iflang.sty\\ % iflang.pdf & doc/latex/oberdiek/iflang.pdf\\ -% test/iflang-test1.tex & doc/latex/oberdiek/test/iflang-test1.tex\\ -% test/iflang-test2.tex & doc/latex/oberdiek/test/iflang-test2.tex\\ -% test/iflang-test3.tex & doc/latex/oberdiek/test/iflang-test3.tex\\ -% test/iflang-test4.tex & doc/latex/oberdiek/test/iflang-test4.tex\\ -% test/iflang-test5.tex & doc/latex/oberdiek/test/iflang-test5.tex\\ % iflang.dtx & source/latex/oberdiek/iflang.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/iflang.pdf b/macros/latex/contrib/oberdiek/iflang.pdf index 27047b8df3..e755675d02 100644 Binary files a/macros/latex/contrib/oberdiek/iflang.pdf and b/macros/latex/contrib/oberdiek/iflang.pdf differ diff --git a/macros/latex/contrib/oberdiek/infwarerr.dtx b/macros/latex/contrib/oberdiek/infwarerr.dtx deleted file mode 100644 index 89198d838a..0000000000 --- a/macros/latex/contrib/oberdiek/infwarerr.dtx +++ /dev/null @@ -1,1193 +0,0 @@ -% \iffalse meta-comment -% -% File: infwarerr.dtx -% Version: 2016/05/16 v1.4 -% Info: Providing info/warning/error messages -% -% Copyright (C) -% 2007, 2010 Heiko Oberdiek -% 2016-2019 Oberdiek Package Support Group -% https://github.com/ho-tex/oberdiek/issues -% -% This work may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either -% version 1.3c of this license or (at your option) any later -% version. This version of this license is in -% https://www.latex-project.org/lppl/lppl-1-3c.txt -% and the latest version of this license is in -% https://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 Maintainers of this work are -% Heiko Oberdiek and the Oberdiek Package Support Group -% https://github.com/ho-tex/oberdiek/issues -% -% The Base Interpreter refers to any `TeX-Format', -% because some files are installed in TDS:tex/generic//. -% -% This work consists of the main source file infwarerr.dtx -% and the derived files -% infwarerr.sty, infwarerr.pdf, infwarerr.ins, infwarerr.drv, -% infwarerr-test1.tex, infwarerr-test2.tex, -% infwarerr-test3.tex. -% -% Distribution: -% CTAN:macros/latex/contrib/oberdiek/infwarerr.dtx -% CTAN:macros/latex/contrib/oberdiek/infwarerr.pdf -% -% Unpacking: -% (a) If infwarerr.ins is present: -% tex infwarerr.ins -% (b) Without infwarerr.ins: -% tex infwarerr.dtx -% (c) If you insist on using LaTeX -% latex \let\install=y\input{infwarerr.dtx} -% (quote the arguments according to the demands of your shell) -% -% Documentation: -% (a) If infwarerr.drv is present: -% latex infwarerr.drv -% (b) Without infwarerr.drv: -% latex infwarerr.dtx; ... -% The class ltxdoc loads the configuration file ltxdoc.cfg -% if available. Here you can specify further options, e.g. -% use A4 as paper format: -% \PassOptionsToClass{a4paper}{article} -% -% Programm calls to get the documentation (example): -% pdflatex infwarerr.dtx -% makeindex -s gind.ist infwarerr.idx -% pdflatex infwarerr.dtx -% makeindex -s gind.ist infwarerr.idx -% pdflatex infwarerr.dtx -% -% Installation: -% TDS:tex/generic/oberdiek/infwarerr.sty -% TDS:doc/latex/oberdiek/infwarerr.pdf -% TDS:doc/latex/oberdiek/test/infwarerr-test1.tex -% TDS:doc/latex/oberdiek/test/infwarerr-test2.tex -% TDS:doc/latex/oberdiek/test/infwarerr-test3.tex -% TDS:source/latex/oberdiek/infwarerr.dtx -% -%<*ignore> -\begingroup - \catcode123=1 % - \catcode125=2 % - \def\x{LaTeX2e}% -\expandafter\endgroup -\ifcase 0\ifx\install y1\fi\expandafter - \ifx\csname processbatchFile\endcsname\relax\else1\fi - \ifx\fmtname\x\else 1\fi\relax -\else\csname fi\endcsname -% -%<*install> -\input docstrip.tex -\Msg{************************************************************************} -\Msg{* Installation} -\Msg{* Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO)} -\Msg{************************************************************************} - -\keepsilent -\askforoverwritefalse - -\let\MetaPrefix\relax -\preamble - -This is a generated file. - -Project: infwarerr -Version: 2016/05/16 v1.4 - -Copyright (C) - 2007, 2010 Heiko Oberdiek - 2016-2019 Oberdiek Package Support Group - -This work may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either -version 1.3c of this license or (at your option) any later -version. This version of this license is in - https://www.latex-project.org/lppl/lppl-1-3c.txt -and the latest version of this license is in - https://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 Maintainers of this work are -Heiko Oberdiek and the Oberdiek Package Support Group -https://github.com/ho-tex/oberdiek/issues - - -The Base Interpreter refers to any `TeX-Format', -because some files are installed in TDS:tex/generic//. - -This work consists of the main source file infwarerr.dtx -and the derived files - infwarerr.sty, infwarerr.pdf, infwarerr.ins, infwarerr.drv, - infwarerr-test1.tex, infwarerr-test2.tex, - infwarerr-test3.tex. - -\endpreamble -\let\MetaPrefix\DoubleperCent - -\generate{% - \file{infwarerr.ins}{\from{infwarerr.dtx}{install}}% - \file{infwarerr.drv}{\from{infwarerr.dtx}{driver}}% - \usedir{tex/generic/oberdiek}% - \file{infwarerr.sty}{\from{infwarerr.dtx}{package}}% -% \usedir{doc/latex/oberdiek/test}% -% \file{infwarerr-test1.tex}{\from{infwarerr.dtx}{test1}}% -% \file{infwarerr-test2.tex}{\from{infwarerr.dtx}{test2}}% -% \file{infwarerr-test3.tex}{\from{infwarerr.dtx}{test3}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{infwarerr.xml}{\from{infwarerr.dtx}{catalogue}}% -} - -\catcode32=13\relax% active space -\let =\space% -\Msg{************************************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move the following} -\Msg{* file into a directory searched by TeX:} -\Msg{*} -\Msg{* infwarerr.sty} -\Msg{*} -\Msg{* To produce the documentation run the file `infwarerr.drv'} -\Msg{* through LaTeX.} -\Msg{*} -\Msg{* Happy TeXing!} -\Msg{*} -\Msg{************************************************************************} - -\endbatchfile -% -%<*ignore> -\fi -% -%<*driver> -\NeedsTeXFormat{LaTeX2e} -\ProvidesFile{infwarerr.drv}% - [2016/05/16 v1.4 Providing info/warning/error messages (HO)]% -\documentclass{ltxdoc} -\usepackage{holtxdoc}[2011/11/22] -\begin{document} - \DocInput{infwarerr.dtx}% -\end{document} -% -% \fi -% -% -% \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 \~} -% -% \GetFileInfo{infwarerr.drv} -% -% \title{The \xpackage{infwarerr} package} -% \date{2016/05/16 v1.4} -% \author{Heiko Oberdiek\thanks -% {Please report any issues at \url{https://github.com/ho-tex/oberdiek/issues}}} -% -% \maketitle -% -% \begin{abstract} -% This package provides a complete set of macros for informations, -% warnings and error messages with support for \plainTeX. -% \end{abstract} -% -% \tableofcontents -% -% \section{Documentation} -% -% Package \xpackage{infwarerr} defines the following set of commands, -% given as pseudo regular expression: -% \begin{quote} -% \verb+\@(Package|Class)(Info|InfoNoLine|Warning|WarningNoLine|Error)+^^A -% \kern-\rightmargin -% \end{quote} -% The first argument is the package or class in question. The second -% argument contains the message text. \cs{MessageBreak} is supported. -% In case of error messages, the third argument contains the help -% text. Supported are \LaTeX's message texts \cs{@ehc}: -% \begin{quote} -% |Try typing to proceed|\\ -% |If that doesn't work, type X to quit.| -% \end{quote} -% and \cs{@ehd}: -% \begin{quote} -% |You're in trouble here. Try typing to proceed|\\ -% |If that doesn't work, type X to quit.| -% \end{quote} -% -% The package is intended for macro writers that want to write -% code that works for both \LaTeX\ and \plainTeX. If \LaTeX\ is -% detected, then the macros of this package will only be wrappers -% for \LaTeX's macros. Otherwise \LaTeX's macros will be mimicked -% for use with \plainTeX. -% -% \StopEventually{ -% } -% -% \section{Implementation} -% -% \begin{macrocode} -%<*package> -% \end{macrocode} -% -% \subsection{Reload check and package identification} -% Reload check, especially if the package is not used with \LaTeX. -% \begin{macrocode} -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode35=6 % # - \catcode39=12 % ' - \catcode44=12 % , - \catcode45=12 % - - \catcode46=12 % . - \catcode58=12 % : - \catcode64=11 % @ - \catcode123=1 % { - \catcode125=2 % } - \expandafter\let\expandafter\x\csname ver@infwarerr.sty\endcsname - \ifx\x\relax % plain-TeX, first loading - \else - \def\empty{}% - \ifx\x\empty % LaTeX, first loading, - % variable is initialized, but \ProvidesPackage not yet seen - \else - \expandafter\ifx\csname PackageInfo\endcsname\relax - \def\x#1#2{% - \immediate\write-1{Package #1 Info: #2.}% - }% - \else - \def\x#1#2{\PackageInfo{#1}{#2, stopped}}% - \fi - \x{infwarerr}{The package is already loaded}% - \aftergroup\endinput - \fi - \fi -\endgroup% -% \end{macrocode} -% Package identification: -% \begin{macrocode} -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode35=6 % # - \catcode39=12 % ' - \catcode40=12 % ( - \catcode41=12 % ) - \catcode44=12 % , - \catcode45=12 % - - \catcode46=12 % . - \catcode47=12 % / - \catcode58=12 % : - \catcode64=11 % @ - \catcode91=12 % [ - \catcode93=12 % ] - \catcode123=1 % { - \catcode125=2 % } - \expandafter\ifx\csname ProvidesPackage\endcsname\relax - \def\x#1#2#3[#4]{\endgroup - \immediate\write-1{Package: #3 #4}% - \xdef#1{#4}% - }% - \else - \def\x#1#2[#3]{\endgroup - #2[{#3}]% - \ifx#1\@undefined - \xdef#1{#3}% - \fi - \ifx#1\relax - \xdef#1{#3}% - \fi - }% - \fi -\expandafter\x\csname ver@infwarerr.sty\endcsname -\ProvidesPackage{infwarerr}% - [2016/05/16 v1.4 Providing info/warning/error messages (HO)]% -% \end{macrocode} -% -% \subsection{Catcodes} -% -% \begin{macrocode} -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode123=1 % { - \catcode125=2 % } - \catcode64=11 % @ - \def\x{\endgroup - \expandafter\edef\csname InfWarErr@AtEnd\endcsname{% - \endlinechar=\the\endlinechar\relax - \catcode13=\the\catcode13\relax - \catcode32=\the\catcode32\relax - \catcode35=\the\catcode35\relax - \catcode61=\the\catcode61\relax - \catcode64=\the\catcode64\relax - \catcode123=\the\catcode123\relax - \catcode125=\the\catcode125\relax - }% - }% -\x\catcode61\catcode48\catcode32=10\relax% -\catcode13=5 % ^^M -\endlinechar=13 % -\catcode35=6 % # -\catcode64=11 % @ -\catcode123=1 % { -\catcode125=2 % } -\def\TMP@EnsureCode#1#2{% - \edef\InfWarErr@AtEnd{% - \InfWarErr@AtEnd - \catcode#1=\the\catcode#1\relax - }% - \catcode#1=#2\relax -} -\TMP@EnsureCode{10}{12}% ^^J -\TMP@EnsureCode{39}{12}% ' -\TMP@EnsureCode{40}{12}% ( -\TMP@EnsureCode{41}{12}% ) -\TMP@EnsureCode{44}{12}% , -\TMP@EnsureCode{45}{12}% - -\TMP@EnsureCode{46}{12}% . -\TMP@EnsureCode{58}{12}% : -\TMP@EnsureCode{60}{12}% < -\TMP@EnsureCode{62}{12}% > -\TMP@EnsureCode{94}{7}% ^ -\edef\InfWarErr@AtEnd{\InfWarErr@AtEnd\noexpand\endinput} -% \end{macrocode} -% -% \subsection{\LaTeX\ detection} -% -% \begin{macrocode} -\begingroup - \let\x=Y% - \def\check#1{% - \@check{Generic}{#1}% - \@check{Package}{#1}% - \@check{Class}{#1}% - }% - \def\@check#1#2{% - \expandafter\ifx\csname #1#2\endcsname\relax - \let\x=N% - \fi - }% - \check{Info}% - \check{Warning}% - \check{Error}% - \@check{Package}{WarningNoLine}% - \@check{Class}{WarningNoLine}% - \@check{}{@ehc}% - \@check{}{@ehd}% -\expandafter\endgroup -\ifx\x Y% -% \end{macrocode} -% -% \subsection{Version for \LaTeX} -% -% \begin{macro}{\@PackageInfo} -% \begin{macrocode} - \let\@PackageInfo\PackageInfo -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@PackageInfoNoLine} -% \begin{macrocode} - \def\@PackageInfoNoLine#1#2{% - \PackageInfo{#1}{#2\@gobble}% - }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@ClassInfo} -% \begin{macrocode} - \let\@ClassInfo\ClassInfo -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@ClassInfoNoLine} -% \begin{macrocode} - \def\@ClassInfoNoLine#1#2{% - \ClassInfo{#1}{#2\@gobble}% - }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@PackageWarning} -% \begin{macrocode} - \let\@PackageWarning\PackageWarning -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@PackageWarningNoLine} -% \begin{macrocode} - \let\@PackageWarningNoLine\PackageWarningNoLine -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@ClassWarning} -% \begin{macrocode} - \let\@ClassWarning\ClassWarning -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@ClassWarningNoLine} -% \begin{macrocode} - \let\@ClassWarningNoLine\ClassWarningNoLine -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@PackageError} -% \begin{macrocode} - \let\@PackageError\PackageError -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@ClassError} -% \begin{macrocode} - \let\@ClassError\ClassError -% \end{macrocode} -% \end{macro} -% \begin{macrocode} - \expandafter\InfWarErr@AtEnd -\fi% -% \end{macrocode} -% -% \subsection{Version for \plainTeX} -% -% \begin{macro}{\InfWarErr@online} -% \begin{macrocode} -\begingroup\expandafter\endgroup -\ifcase\expandafter\ifx\csname inputlineno\endcsname\relax - 0 % - \else - \ifnum\inputlineno<0 % - 0 % - \else - 1 % - \fi - \fi - \def\InfWarErr@online{}% -\else - \def\InfWarErr@online{ on input line \the\inputlineno}% -\fi -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\InfWarErr@protected} -% \begin{macrocode} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname protected\endcsname\relax - \def\InfWarErr@protected{}% -\else - \let\InfWarErr@protected\protected -\fi -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\InfWarErr@unused} -% \begin{macrocode} -\chardef\InfWarErr@unused=16 % -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\InfWarErr@ehc} -% \begin{macrocode} -\def\InfWarErr@ehc{% - Try typing \space \space to proceed.\MessageBreak - If that doesn't work, type \space X \space to quit.% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InfWarErr@ehd} -% \begin{macrocode} -\def\InfWarErr@ehd{% - You're in trouble here. \space\@ehc -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\InfWarErr@GenericInfo} -% \begin{macrocode} -\InfWarErr@protected\def\InfWarErr@GenericInfo#1#2{% - \begingroup - \let\on@line\InfWarErr@online - \long\def\@gobble##1{}% - \def\space{ }% - \def\@spaces{\space\space\space\space}% - \def\MessageBreak{^^J#1}% - \newlinechar=10 % - \escapechar=92 % - \immediate\write-1{#2\on@line.}% - \endgroup -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InfWarErr@GenericWarning} -% \begin{macrocode} -\InfWarErr@protected\def\InfWarErr@GenericWarning#1#2{% - \begingroup - \let\on@line\InfWarErr@online - \long\def\@gobble##1{}% - \def\space{ }% - \def\@spaces{\space\space\space\space}% - \def\MessageBreak{^^J#1}% - \newlinechar=10 % - \escapechar=92 % - \immediate\write\InfWarErr@unused{^^J#2\on@line.^^J}% - \endgroup -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InfWarErr@GenericError} -% Old \TeX\ versions below 3.141 where |^^J| is not working -% as newline in error message and help texts are not supported. -% \begin{macrocode} -\InfWarErr@protected\def\InfWarErr@GenericError#1#2#3#4{% - \begingroup - \immediate\write\InfWarErr@unused{}% - \def\space{ }% - \def\@spaces{\space\space\space\space}% - \let\@ehc\InfWarErr@ehc - \let\@ehd\InfWarErr@ehd - \let\on@line\InfWarErr@online - \def\MessageBreak{^^J}% - \newlinechar=10 % - \escapechar=92 % - \edef\InfWarErr@help{\noexpand\errhelp{#4}}% - \InfWarErr@help - \def\MessageBreak{^^J#1}% - \errmessage{% - #2.^^J^^J% - #3^^J% - Type \space H \space for immediate help.^^J ...^^J% - }% - \endgroup -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\@PackageInfo} -% \begin{macrocode} -\def\@PackageInfo#1#2{% - \InfWarErr@GenericInfo{% - (#1) \@spaces\@spaces\@spaces - }{% - Package #1 Info: #2% - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@PackageInfoNoLine} -% \begin{macrocode} -\def\@PackageInfoNoLine#1#2{% - \@PackageInfo{#1}{#2\@gobble}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@ClassInfo} -% \begin{macrocode} -\def\@ClassInfo#1#2{% - \InfWarErr@GenericInfo{% - (#1) \space\space\@spaces\@spaces - }{% - Class #1 Info: #2% - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@ClassInfoNoLine} -% \begin{macrocode} -\def\@ClassInfoNoLine#1#2{% - \@ClassInfo{#1}{#2\@gobble}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@PackageWarning} -% \begin{macrocode} -\def\@PackageWarning#1#2{% - \InfWarErr@GenericWarning{% - (#1)\@spaces\@spaces\@spaces\@spaces - }{% - Package #1 Warning: #2% - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@PackageWarningNoLine} -% \begin{macrocode} -\def\@PackageWarningNoLine#1#2{% - \@PackageWarning{#1}{#2\@gobble}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@ClassWarning} -% \begin{macrocode} -\def\@ClassWarning#1#2{% - \InfWarErr@GenericWarning{% - (#1) \space\@spaces\@spaces\@spaces - }{% - Class #1 Warning: #2% - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@ClassWarningNoLine} -% \begin{macrocode} -\def\@ClassWarningNoLine#1#2{% - \@ClassWarning{#1}{#2\@gobble}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@PackageError} -% \begin{macrocode} -\def\@PackageError#1#2#3{% - \InfWarErr@GenericError{% - (#1)\@spaces\@spaces\@spaces\@spaces - }{% - Package #1 Error: #2% - }{% - See the #1 package documentation for explanation.% - }{#3}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@ClassError} -% \begin{macrocode} -\def\@ClassError#1#2#3{% - \InfWarErr@GenericError{% - (#1) \space\@spaces\@spaces\@spaces - }{% - Class #1 Error: #2% - }{% - See the #1 class documentation for explanation.% - }{#3}% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\InfWarErr@AtEnd% -% -% \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input infwarerr.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Macro tests} -% -% \begin{macrocode} -%<*test2> -\let\PackageInfo\relax -\input infwarerr.sty\relax -\let\OrgWrite\write -\chardef\WriteUnused=16 % -\def\msg#{\immediate\OrgWrite\WriteUnused} -\msg{File: infwarerr-test2.tex 2016/05/16 v1.4 Test file for plain-TeX} -\catcode64=11 % -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test3> -\NeedsTeXFormat{LaTeX2e} -\ProvidesFile{infwarerr-test3.tex}[2016/05/16 v1.4 Test file for LaTeX] -\RequirePackage{infwarerr}[2016/05/16] -\makeatletter -\let\OrgWrite\write -\chardef\WriteUnused=\@unused -\def\msg#{\immediate\OrgWrite\WriteUnused} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test2|test3> -\def\pkgname{PACKAGE} -\def\clsname{CLASS} -\def\msgtext{MESSAGE\MessageBreak SECOND LINE} -\def\hlptext{HELP\MessageBreak SECOND LINE} - -\let\OrgWrite\write -\let\OrgErrMessage\errmessage - -\def\write#1#{% - \@write{#1}% -} -\def\@write#1#2{% - \OrgWrite#1{#2}% - \xdef\WriteNum{\number#1}% - \xdef\WriteText{#2}% -} -\def\TestFailed#1#2{% - \OrgErrMessage{Test (\string#1) failed: #2}% -} -\def\TestWrite#1#2#3{% - \ifnum\WriteNum=#2\relax - \else - \TestFailed#1{write stream number: \WriteNum <> #2}% - \fi - \begingroup - \let~\space - \edef\TestString{#3}% - \ifx\WriteText\TestString - \else - \msg{}% - \msg{[\WriteText]}% - \msg{<>}% - \msg{[#3]}% hash-ok - \TestFailed#1{write text}% - \fi - \endgroup -} -\newtoks\ErrHelpToks -\def\errmessage#1{% - \global\ErrHelpToks=\expandafter{\the\errhelp}% - \msg{**************** error message ****************}% - \msg{! #1}% - \msg{**************** help message *****************}% - \msg{\the\errhelp}% - \msg{***********************************************}% - \xdef\ErrMessage{! #1}% -} -\def\TestInfo{% - \@PackageInfo\pkgname\msgtext - \TestWrite\@PackageInfo{-1}{% - Package PACKAGE Info: MESSAGE^^J% - (PACKAGE)~~~~~~~~~~~~~SECOND LINE on input line \the\inputlineno.% - }% - \@PackageInfoNoLine\pkgname\msgtext - \TestWrite\@PackageInfoNoLine{-1}{% - Package PACKAGE Info: MESSAGE^^J% - (PACKAGE)~~~~~~~~~~~~~SECOND LINE.% - }% - \@ClassInfo\clsname\msgtext - \TestWrite\@ClassInfo{-1}{% - Class CLASS Info: MESSAGE^^J% - (CLASS)~~~~~~~~~~~SECOND LINE on input line \the\inputlineno.% - }% - \@ClassInfoNoLine\clsname\msgtext - \TestWrite\@ClassInfoNoLine{-1}{% - Class CLASS Info: MESSAGE^^J% - (CLASS)~~~~~~~~~~~SECOND LINE.% - }% -} -\def\TestWarning{% - \@PackageWarning\pkgname\msgtext - \TestWrite\@PackageWarning\WriteUnused{% - ^^J% - Package PACKAGE Warning: MESSAGE^^J% - (PACKAGE)~~~~~~~~~~~~~~~~SECOND LINE on input line \the\inputlineno.% - ^^J% - }% - \@PackageWarningNoLine\pkgname\msgtext - \TestWrite\@PackageWarningNoLine\WriteUnused{% - ^^J% - Package PACKAGE Warning: MESSAGE^^J% - (PACKAGE)~~~~~~~~~~~~~~~~SECOND LINE.% - ^^J% - }% - \@ClassWarning\clsname\msgtext - \TestWrite\@ClassWarning\WriteUnused{% - ^^J% - Class CLASS Warning: MESSAGE^^J% - (CLASS)~~~~~~~~~~~~~~SECOND LINE on input line \the\inputlineno.% - ^^J% - }% - \@ClassWarningNoLine\clsname\msgtext - \TestWrite\@ClassWarningNoLine\WriteUnused{% - ^^J% - Class CLASS Warning: MESSAGE^^J% - (CLASS)~~~~~~~~~~~~~~SECOND LINE.% - ^^J% - }% -} -\def\TestError{% -% \let\write\OrgWrite -% \def\plaindots{} -% \def\plaindots{.^^J ...^^J} - \@PackageError\pkgname\msgtext\hlptext - \@TestError\@PackageError{% - ! Package PACKAGE Error: MESSAGE^^J% - (PACKAGE)~~~~~~~~~~~~~~~~SECOND LINE.^^J% - ^^J% - See the PACKAGE package documentation for explanation.^^J% - Type~~H ~~for immediate help\plaindots - }{% - HELP^^J% - SECOND LINE% - }% - \@ClassError\clsname\msgtext\hlptext - \@TestError\@ClassError{% - ! Class CLASS Error: MESSAGE^^J% - (CLASS)~~~~~~~~~~~~~~SECOND LINE.^^J% - ^^J% - See the CLASS class documentation for explanation.^^J% - Type~~H ~~for immediate help\plaindots - }{% - HELP^^J% - SECOND LINE% - }% - \@PackageError\pkgname\msgtext\@ehc - \@TestError\@PackageError{% - ! Package PACKAGE Error: MESSAGE^^J% - (PACKAGE)~~~~~~~~~~~~~~~~SECOND LINE.^^J% - ^^J% - See the PACKAGE package documentation for explanation.^^J% - Type~~H ~~for immediate help\plaindots - }{% - Try typing~~~~to proceed.^^J% - If that doesn't work, type~~X ~~to quit.% - }% - \@PackageError\pkgname\msgtext\@ehd - \@TestError\@PackageError{% - ! Package PACKAGE Error: MESSAGE^^J% - (PACKAGE)~~~~~~~~~~~~~~~~SECOND LINE.^^J% - ^^J% - See the PACKAGE package documentation for explanation.^^J% - Type~~H ~~for immediate help\plaindots - }{% - You're in trouble here.~~Try typing~~~~to proceed.^^J% - If that doesn't work, type~~X ~~to quit.% - }% -} -\def\@TestError#1#2#3{% - \begingroup - \let~\space - \edef\x{#2}% -% \@onelevel@sanitize\x -% \@onelevel@sanitize\ErrMessage - \ifx\x\ErrMessage - \else - \msg{}% - \msg{[\ErrMessage]}% - \msg{<>}% - \msg{[\x]}% - \TestFailed#1{errmessage text}% - \fi - \edef\x{\the\ErrHelpToks}% - \edef\y{#3}% - \ifx\x\y - \else - \msg{}% - \msg{[\the\ErrHelpToks]}% - \msg{<>}% - \msg{[\y]}% - \TestFailed#1{errhelp text}% - \fi - \endgroup -} -\TestInfo -\TestWarning -\TestError -% -%\end -%\@@end -% \end{macrocode} -% -% -% \section{Installation} -% -% \subsection{Download} -% -% \paragraph{Package.} This package is available on -% CTAN\footnote{\CTANpkg{infwarerr}}: -% \begin{description} -% \item[\CTAN{macros/latex/contrib/oberdiek/infwarerr.dtx}] The source file. -% \item[\CTAN{macros/latex/contrib/oberdiek/infwarerr.pdf}] Documentation. -% \end{description} -% -% -% \paragraph{Bundle.} All the packages of the bundle `oberdiek' -% are also available in a TDS compliant ZIP archive. There -% the packages are already unpacked and the documentation files -% are generated. The files and directories obey the TDS standard. -% \begin{description} -% \item[\CTANinstall{install/macros/latex/contrib/oberdiek.tds.zip}] -% \end{description} -% \emph{TDS} refers to the standard ``A Directory Structure -% for \TeX\ Files'' (\CTANpkg{tds}). Directories -% with \xfile{texmf} in their name are usually organized this way. -% -% \subsection{Bundle installation} -% -% \paragraph{Unpacking.} Unpack the \xfile{oberdiek.tds.zip} in the -% TDS tree (also known as \xfile{texmf} tree) of your choice. -% Example (linux): -% \begin{quote} -% |unzip oberdiek.tds.zip -d ~/texmf| -% \end{quote} -% -% \subsection{Package installation} -% -% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting -% \docstrip\ archive. The files are extracted by running the -% \xfile{.dtx} through \plainTeX: -% \begin{quote} -% \verb|tex infwarerr.dtx| -% \end{quote} -% -% \paragraph{TDS.} Now the different files must be moved into -% the different directories in your installation TDS tree -% (also known as \xfile{texmf} tree): -% \begin{quote} -% \def\t{^^A -% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} -% infwarerr.sty & tex/generic/oberdiek/infwarerr.sty\\ -% infwarerr.pdf & doc/latex/oberdiek/infwarerr.pdf\\ -% test/infwarerr-test1.tex & doc/latex/oberdiek/test/infwarerr-test1.tex\\ -% test/infwarerr-test2.tex & doc/latex/oberdiek/test/infwarerr-test2.tex\\ -% test/infwarerr-test3.tex & doc/latex/oberdiek/test/infwarerr-test3.tex\\ -% infwarerr.dtx & source/latex/oberdiek/infwarerr.dtx\\ -% \end{tabular}^^A -% }^^A -% \sbox0{\t}^^A -% \ifdim\wd0>\linewidth -% \begingroup -% \advance\linewidth by\leftmargin -% \advance\linewidth by\rightmargin -% \edef\x{\endgroup -% \def\noexpand\lw{\the\linewidth}^^A -% }\x -% \def\lwbox{^^A -% \leavevmode -% \hbox to \linewidth{^^A -% \kern-\leftmargin\relax -% \hss -% \usebox0 -% \hss -% \kern-\rightmargin\relax -% }^^A -% }^^A -% \ifdim\wd0>\lw -% \sbox0{\small\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\footnotesize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\scriptsize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\tiny\t}^^A -% \ifdim\wd0>\linewidth -% \lwbox -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \end{quote} -% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's -% TDS installing feature, then some files can already be in the right -% place, see the documentation of \docstrip. -% -% \subsection{Refresh file name databases} -% -% If your \TeX~distribution -% (\TeX\,Live, \mikTeX, \dots) relies on file name databases, you must refresh -% these. For example, \TeX\,Live\ users run \verb|texhash| or -% \verb|mktexlsr|. -% -% \subsection{Some details for the interested} -% -% \paragraph{Unpacking with \LaTeX.} -% The \xfile{.dtx} chooses its action depending on the format: -% \begin{description} -% \item[\plainTeX:] Run \docstrip\ and extract the files. -% \item[\LaTeX:] Generate the documentation. -% \end{description} -% If you insist on using \LaTeX\ for \docstrip\ (really, -% \docstrip\ does not need \LaTeX), then inform the autodetect routine -% about your intention: -% \begin{quote} -% \verb|latex \let\install=y\input{infwarerr.dtx}| -% \end{quote} -% Do not forget to quote the argument according to the demands -% of your shell. -% -% \paragraph{Generating the documentation.} -% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate -% the documentation. The process can be configured by the -% configuration file \xfile{ltxdoc.cfg}. For instance, put this -% line into this file, if you want to have A4 as paper format: -% \begin{quote} -% \verb|\PassOptionsToClass{a4paper}{article}| -% \end{quote} -% An example follows how to generate the -% documentation with pdf\LaTeX: -% \begin{quote} -%\begin{verbatim} -%pdflatex infwarerr.dtx -%makeindex -s gind.ist infwarerr.idx -%pdflatex infwarerr.dtx -%makeindex -s gind.ist infwarerr.idx -%pdflatex infwarerr.dtx -%\end{verbatim} -% \end{quote} -% -% \begin{History} -% \begin{Version}{2007/04/26 v1.0} -% \item -% First version. -% \end{Version} -% \begin{Version}{2007/06/14 v1.1} -% \item -% Small fixes. -% \end{Version} -% \begin{Version}{2007/09/09 v1.2} -% \item -% Catcode section extended. -% \end{Version} -% \begin{Version}{2010/04/08 v1.3} -% \item -% Ensure \cs{escapechar}=92 (backslash) for infos/warnings/errors. -% \end{Version} -% \begin{Version}{2016/05/16 v1.4} -% \item -% Documentation updates. -% \end{Version} -% \end{History} -% -% \PrintIndex -% -% \Finale -\endinput diff --git a/macros/latex/contrib/oberdiek/infwarerr.pdf b/macros/latex/contrib/oberdiek/infwarerr.pdf deleted file mode 100644 index 7cbaae40f8..0000000000 Binary files a/macros/latex/contrib/oberdiek/infwarerr.pdf and /dev/null differ diff --git a/macros/latex/contrib/oberdiek/intcalc.dtx b/macros/latex/contrib/oberdiek/intcalc.dtx index 586ae3959e..245cc21812 100644 --- a/macros/latex/contrib/oberdiek/intcalc.dtx +++ b/macros/latex/contrib/oberdiek/intcalc.dtx @@ -67,10 +67,6 @@ % Installation: % TDS:tex/generic/oberdiek/intcalc.sty % TDS:doc/latex/oberdiek/intcalc.pdf -% TDS:doc/latex/oberdiek/test/intcalc-test1.tex -% TDS:doc/latex/oberdiek/test/intcalc-test2.tex -% TDS:doc/latex/oberdiek/test/intcalc-test3.tex -% TDS:doc/latex/oberdiek/test/intcalc-test4.tex % TDS:source/latex/oberdiek/intcalc.dtx % %<*ignore> @@ -145,10 +141,6 @@ and the derived files % \file{intcalc-test2.tex}{\from{intcalc.dtx}{test2,etex}}% % \file{intcalc-test3.tex}{\from{intcalc.dtx}{test2,noetex}}% % \file{intcalc-test4.tex}{\from{intcalc.dtx}{test4,etex}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{intcalc.xml}{\from{intcalc.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -219,21 +211,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{intcalc.drv} % @@ -3119,955 +3096,7 @@ and the derived files % \begin{macrocode} % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input intcalc.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Macro tests} -% -% \subsubsection{Preamble with test macro definitions} -% -% \begin{macrocode} -%<*test2|test4> -\NeedsTeXFormat{LaTeX2e} -\nofiles -\documentclass{article} -%\let\SavedNumexpr\numexpr -%\let\numexpr\UNDEFINED -\makeatletter -\chardef\InCa@TestMode=1 % -\makeatother -\usepackage{intcalc}[2016/05/16] -%\let\numexpr\SavedNumexpr -\usepackage{qstest} -\IncludeTests{*} -\LogTests{log}{*}{*} -% -%<*test2> -\newcommand*{\TestSpaceAtEnd}[1]{% -% \let\SavedNumexpr\numexpr -% \let\numexpr\UNDEFINED - \edef\resultA{#1}% - \edef\resultB{#1 }% -% \let\numexpr\SavedNumexpr - \Expect*{\resultA\space}*{\resultB}% -} -\newcommand*{\TestResult}[2]{% -% \let\SavedNumexpr\numexpr -% \let\numexpr\UNDEFINED - \edef\result{#1}% -% \let\numexpr\SavedNumexpr - \Expect*{\result}{#2}% -} -\newcommand*{\TestResultTwoExpansions}[2]{% -%<*noetex> - \begingroup - \let\numexpr\UNDEFINED - \expandafter\expandafter\expandafter - \endgroup -% - \expandafter\expandafter\expandafter\Expect - \expandafter\expandafter\expandafter{#1}{#2}% -} -\newcount\TestCount -%\newcommand*{\TestArg}[1]{\numexpr#1\relax} -%\newcommand*{\TestArg}[1]{#1} -\newcommand*{\TestTeXDivide}[2]{% - \TestCount=\TestArg{#1}\relax - \divide\TestCount by \TestArg{#2}\relax - \Expect*{\intcalcDiv{#1}{#2}}*{\the\TestCount}% -} -\newcommand*{\Test}[2]{% - \TestResult{#1}{#2}% - \TestResultTwoExpansions{#1}{#2}% - \TestSpaceAtEnd{#1}% -} -\newcommand*{\TestExch}[2]{\Test{#2}{#1}} -\newcommand*{\TestInv}[2]{% - \Test{\intcalcInv{#1}}{#2}% -} -\newcommand*{\TestNum}[2]{% - \Test{\intcalcNum{#1}}{#2}% -} -\newcommand*{\TestAbs}[2]{% - \Test{\intcalcAbs{#1}}{#2}% -} -\newcommand*{\TestSgn}[2]{% - \Test{\intcalcSgn{#1}}{#2}% -} -\newcommand*{\TestMin}[3]{% - \Test{\intcalcMin{#1}{#2}}{#3}% -} -\newcommand*{\TestMax}[3]{% - \Test{\intcalcMax{#1}{#2}}{#3}% -} -\newcommand*{\TestCmp}[3]{% - \Test{\intcalcCmp{#1}{#2}}{#3}% -} -\newcommand*{\TestInc}[2]{% - \Test{\intcalcInc{#1}}{#2}% - \ifnum\intcalcNum{#1}>-1 % - \edef\x{% - \noexpand\Test{% - \noexpand\IntCalcInc\intcalcNum{#1}!% - }{#2}% - }% - \x - \fi -} -\newcommand*{\TestDec}[2]{% - \Test{\intcalcDec{#1}}{#2}% - \ifnum\intcalcNum{#1}>0 % - \edef\x{% - \noexpand\Test{% - \noexpand\IntCalcDec\intcalcNum{#1}!% - }{#2}% - }% - \x - \fi -} -\newcommand*{\TestAdd}[3]{% - \Test{\intcalcAdd{#1}{#2}}{#3}% - \ifnum\intcalcNum{#1}>0 % - \ifnum\intcalcNum{#2}> 0 % - \ifnum\intcalcCmp{#1}{#2}>0 % - \edef\x{% - \noexpand\Test{% - \noexpand\IntCalcAdd - \intcalcNum{#1}!\intcalcNum{#2}!% - }{#3}% - }% - \x - \else - \edef\x{% - \noexpand\Test{% - \noexpand\IntCalcAdd - \intcalcNum{#2}!\intcalcNum{#1}!% - }{#3}% - }% - \x - \fi - \fi - \fi -} -\newcommand*{\TestSub}[3]{% - \Test{\intcalcSub{#1}{#2}}{#3}% - \ifnum\intcalcNum{#1}>0 % - \ifnum\intcalcNum{#2}> 0 % - \ifnum\intcalcCmp{#1}{#2}>0 % - \edef\x{% - \noexpand\Test{% - \noexpand\IntCalcSub - \intcalcNum{#1}!\intcalcNum{#2}!% - }{#3}% - }% - \x - \fi - \fi - \fi -} -\newcommand*{\TestShl}[2]{% - \Test{\intcalcShl{#1}}{#2}% - \edef\x{% - \noexpand\Test{% - \noexpand\IntCalcShl\intcalcAbs{#1}!% - }{\intcalcAbs{#2}}% - }% - \x -} -\newcommand*{\TestShr}[2]{% - \Test{\intcalcShr{#1}}{#2}% - \edef\x{% - \noexpand\Test{% - \noexpand\IntCalcShr\intcalcAbs{#1}!% - }{\intcalcAbs{#2}}% - }% - \x -} -\newcommand*{\TestMul}[3]{% - \Test{\intcalcMul{#1}{#2}}{#3}% - \edef\x{% - \noexpand\Test{% - \noexpand\IntCalcMul\intcalcAbs{#1}!\intcalcAbs{#2}!% - }{\intcalcAbs{#3}}% - }% - \x -} -\newcommand*{\TestSqr}[2]{% - \Test{\intcalcSqr{#1}}{#2}% -} -\newcommand*{\TestFac}[2]{% - \expandafter\TestExch\expandafter{\the\numexpr#2}{\intcalcFac{#1}}% -} -\newcommand*{\TestPow}[3]{% - \Test{\intcalcPow{#1}{#2}}{#3}% -} -\newcommand*{\TestDiv}[3]{% - \Test{\intcalcDiv{#1}{#2}}{#3}% - \TestTeXDivide{#1}{#2}% - \edef\x{% - \noexpand\Test{% - \noexpand\IntCalcDiv\intcalcAbs{#1}!\intcalcAbs{#2}!% - }{\intcalcAbs{#3}}% - }% -} -\newcommand*{\TestMod}[3]{% - \Test{\intcalcMod{#1}{#2}}{#3}% - \ifcase\ifcase\intcalcSgn{#1} 0% - \or - \ifcase\intcalcSgn{#2} 1% - \or 0% - \else 1% - \fi - \else - \ifcase\intcalcSgn{#2} 1% - \or 1% - \else 0% - \fi - \fi\relax - \edef\x{% - \noexpand\Test{% - \noexpand\IntCalcMod - \intcalcAbs{#1}!\intcalcAbs{#2}!% - }{\intcalcAbs{#3}}% - }% - \x - \fi -} -% -% \end{macrocode} -% -% \subsubsection{Time} -% -% \begin{macrocode} -%<*test2> -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname pdfresettimer\endcsname\relax -\else - \makeatletter - \newcount\SummaryTime - \newcount\TestTime - \SummaryTime=\z@ - \newcommand*{\PrintTime}[2]{% - \typeout{% - [Time #1: \strip@pt\dimexpr\number#2sp\relax\space s]% - }% - }% - \newcommand*{\StartTime}[1]{% - \renewcommand*{\TimeDescription}{#1}% - \pdfresettimer - }% - \newcommand*{\TimeDescription}{}% - \newcommand*{\StopTime}{% - \TestTime=\pdfelapsedtime - \global\advance\SummaryTime\TestTime - \PrintTime\TimeDescription\TestTime - }% - \let\saved@qstest\qstest - \let\saved@endqstest\endqstest - \def\qstest#1#2{% - \saved@qstest{#1}{#2}% - \StartTime{#1}% - }% - \def\endqstest{% - \StopTime - \saved@endqstest - }% - \AtEndDocument{% - \PrintTime{summary}\SummaryTime - }% - \makeatother -\fi -% -% \end{macrocode} -% -% \subsubsection{Test 4: additional mod/div operations} -% -% \begin{macrocode} -%<*test4> -\newcommand*{\TestDo}[2]{% - \ifcase\numexpr#2\relax - \else - \edef\temp{\intcalcMod{#1}{#2}}% - \Expect*{% - \the\numexpr - \intcalcMul{% - \intcalcDiv{\intcalcAbs{#1}}{\intcalcAbs{#2}}% - }{\intcalcAbs{#2}}% - +\intcalcMod{\intcalcAbs{#1}}{\intcalcAbs{#2}}\relax - }*{\the\numexpr\intcalcAbs{#1}\relax}% - \fi -} -\newcommand*{\TestOne}[2]{% - \TestDo{#1}{#1}% -} -\newcommand*{\TestTwo}[3]{% - \TestDo{#1}{#2}% - \TestDo{#2}{#1}% -} -\let\TestNum\TestOne -\let\TestInv\TestOne -\let\TestAbs\TestOne -\let\TestSgn\TestOne -\let\TestMin\TestTwo -\let\TestMax\TestTwo -\let\TestCmp\TestTwo -\let\TestInc\TestOne -\let\TestDec\TestOne -\let\TestAdd\TestTwo -\let\TestSub\TestTwo -\let\TestShl\TestOne -\let\TestShr\TestOne -\let\TestMul\TestTwo -\let\TestSqr\TestOne -\def\TestFac#1#2{} -\let\TestPow\TestTwo -\let\TestDiv\TestTwo -\let\TestMod\TestTwo -% -% \end{macrocode} -% -% \subsubsection{Test sets} -% -% \begin{macrocode} -%<*test2|test4> -\makeatletter - -\begin{qstest}{num}{num}% - \TestNum{0}{0}% - \TestNum{1}{1}% - \TestNum{-1}{-1}% - \TestNum{10}{10}% - \TestNum{-10}{-10}% - \TestNum{2147483647}{2147483647}% - \TestNum{-2147483647}{-2147483647}% - \TestNum{ 0 }{0}% - \TestNum{ 1 }{1}% - \TestNum{--1}{1}% - \TestNum{ - + - + 4 }{4}% - \TestNum{\z@}{0}% - \TestNum{\@ne}{1}% - \TestNum{\m@ne}{-1}% -%<*etex> - \TestNum{-10+30}{20}% - \TestNum{10-30}{-20}% -% -\end{qstest} - -\begin{qstest}{inv}{inv}% - \TestInv{0}{0}% - \TestInv{1}{-1}% - \TestInv{-1}{1}% - \TestInv{10}{-10}% - \TestInv{-10}{10}% - \TestInv{2147483647}{-2147483647}% - \TestInv{-2147483647}{2147483647}% - \TestInv{ 0 }{0}% - \TestInv{ 1 }{-1}% - \TestInv{--1}{-1}% - \TestInv{\z@}{0}% - \TestInv{\@ne}{-1}% - \TestInv{\m@ne}{1}% -%<*etex> - \TestInv{-10+30}{-20}% - \TestInv{10-30}{20}% -% -\end{qstest} - -\begin{qstest}{abs}{abs}% - \TestAbs{0}{0}% - \TestAbs{1}{1}% - \TestAbs{-1}{1}% - \TestAbs{10}{10}% - \TestAbs{-10}{10}% - \TestAbs{2147483647}{2147483647}% - \TestAbs{-2147483647}{2147483647}% - \TestAbs{ 0 }{0}% - \TestAbs{ 1 }{1}% - \TestAbs{--1}{1}% - \TestAbs{\z@}{0}% - \TestAbs{\@ne}{1}% - \TestAbs{\m@ne}{1}% -%<*etex> - \TestAbs{-10+30}{20}% - \TestAbs{10-30}{20}% -% -\end{qstest} - -\begin{qstest}{sign}{sign}% - \TestSgn{0}{0}% - \TestSgn{1}{1}% - \TestSgn{-1}{-1}% - \TestSgn{10}{1}% - \TestSgn{-10}{-1}% - \TestSgn{2147483647}{1}% - \TestSgn{-2147483647}{-1}% - \TestSgn{ 0 }{0}% - \TestSgn{ 2 }{1}% - \TestSgn{ -2 }{-1}% - \TestSgn{--2}{1}% - \TestSgn{\z@}{0}% - \TestSgn{\@ne}{1}% - \TestSgn{\m@ne}{-1}% -%<*etex> - \TestSgn{-10+30}{1}% - \TestSgn{10-30}{-1}% -% -\end{qstest} - -\begin{qstest}{min}{min}% - \TestMin{0}{1}{0}% - \TestMin{1}{0}{0}% - \TestMin{-10}{-20}{-20}% - \TestMin{ 1 }{ 2 }{1}% - \TestMin{ 2 }{ 1 }{1}% - \TestMin{1}{1}{1}% - \TestMin{\z@}{\@ne}{0}% - \TestMin{\@ne}{\m@ne}{-1}% -%<*etex> - \TestMin{1+2}{3+4}{3}% -% -\end{qstest} - -\begin{qstest}{max}{max}% - \TestMax{0}{1}{1}% - \TestMax{1}{0}{1}% - \TestMax{-10}{-20}{-10}% - \TestMax{ 1 }{ 2 }{2}% - \TestMax{ 2 }{ 1 }{2}% - \TestMax{1}{1}{1}% - \TestMax{\z@}{\@ne}{1}% - \TestMax{\@ne}{\m@ne}{1}% -%<*etex> - \TestMax{1+2}{3+4}{7}% -% -\end{qstest} - -\begin{qstest}{cmp}{cmp}% - \TestCmp{0}{0}{0}% - \TestCmp{-21}{17}{-1}% - \TestCmp{3}{4}{-1}% - \TestCmp{-10}{-10}{0}% - \TestCmp{-10}{-11}{1}% - \TestCmp{100}{5}{1}% - \TestCmp{2147483647}{-2147483647}{1}% - \TestCmp{-2147483647}{2147483647}{-1}% - \TestCmp{2147483647}{2147483647}{0}% - \TestCmp{\z@}{\@ne}{-1}% - \TestCmp{\@ne}{\m@ne}{1}% - \TestCmp{ 4 }{ 5 }{-1}% - \TestCmp{ -3 }{ -7 }{1}% -%<*etex> - \TestCmp{1+2}{3+4}{-1}% -% -\end{qstest} - -\begin{qstest}{fac}{fac} - \TestFac{0}{1}% - \TestFac{1}{1}% - \TestFac{2}{2}% - \TestFac{3}{2*3}% - \TestFac{4}{2*3*4}% - \TestFac{5}{2*3*4*5}% - \TestFac{6}{2*3*4*5*6}% - \TestFac{7}{2*3*4*5*6*7}% - \TestFac{8}{2*3*4*5*6*7*8}% - \TestFac{9}{2*3*4*5*6*7*8*9}% - \TestFac{10}{2*3*4*5*6*7*8*9*10}% - \TestFac{11}{2*3*4*5*6*7*8*9*10*11}% - \TestFac{12}{2*3*4*5*6*7*8*9*10*11*12}% -\end{qstest} - -\begin{qstest}{inc}{inc}% - \TestInc{0}{1}% - \TestInc{1}{2}% - \TestInc{-1}{0}% - \TestInc{10}{11}% - \TestInc{-10}{-9}% - \TestInc{999}{1000}% - \TestInc{-1000}{-999}% - \TestInc{129}{130}% - \TestInc{2147483646}{2147483647}% - \TestInc{-2147483647}{-2147483646}% -\end{qstest} - -\begin{qstest}{dec}{dec}% - \TestDec{0}{-1}% - \TestDec{1}{0}% - \TestDec{-1}{-2}% - \TestDec{10}{9}% - \TestDec{-10}{-11}% - \TestDec{1000}{999}% - \TestDec{-999}{-1000}% - \TestDec{130}{129}% - \TestDec{2147483647}{2147483646}% - \TestDec{-2147483646}{-2147483647}% -\end{qstest} - -\begin{qstest}{add}{add}% - \TestAdd{0}{0}{0}% - \TestAdd{1}{0}{1}% - \TestAdd{0}{1}{1}% - \TestAdd{1}{2}{3}% - \TestAdd{-1}{-1}{-2}% - \TestAdd{2147483646}{1}{2147483647}% - \TestAdd{-2147483647}{2147483647}{0}% - \TestAdd{20}{-5}{15}% - \TestAdd{-4}{-1}{-5}% - \TestAdd{-1}{-4}{-5}% - \TestAdd{-4}{1}{-3}% - \TestAdd{-1}{4}{3}% - \TestAdd{4}{-1}{3}% - \TestAdd{1}{-4}{-3}% - \TestAdd{-4}{-1}{-5}% - \TestAdd{-1}{-4}{-5}% - \TestAdd{ -4 }{ -1 }{-5}% - \TestAdd{ -1 }{ -4 }{-5}% - \TestAdd{ -4 }{ 1 }{-3}% - \TestAdd{ -1 }{ 4 }{3}% - \TestAdd{ 4 }{ -1 }{3}% - \TestAdd{ 1 }{ -4 }{-3}% - \TestAdd{ -4 }{ -1 }{-5}% - \TestAdd{ -1 }{ -4 }{-5}% - \TestAdd{876543210}{111111111}{987654321}% - \TestAdd{999999999}{2}{1000000001}% -%<*etex> - \TestAdd{100}{50+150}{300}% - \TestAdd{2147483647}{10-2147483647}{10}% -% -\end{qstest} - -\begin{qstest}{sub}{sub} - \TestSub{0}{0}{0}% - \TestSub{1}{0}{1}% - \TestSub{1}{2}{-1}% - \TestSub{-1}{-1}{0}% - \TestSub{2147483646}{-1}{2147483647}% - \TestSub{-2147483647}{-2147483647}{0}% - \TestSub{-4}{-1}{-3}% - \TestSub{-1}{-4}{3}% - \TestSub{-4}{1}{-5}% - \TestSub{-1}{4}{-5}% - \TestSub{4}{-1}{5}% - \TestSub{1}{-4}{5}% - \TestSub{-4}{-1}{-3}% - \TestSub{-1}{-4}{3}% - \TestSub{ -4 }{ -1 }{-3}% - \TestSub{ -1 }{ -4 }{3}% - \TestSub{ -4 }{ 1 }{-5}% - \TestSub{ -1 }{ 4 }{-5}% - \TestSub{ 4 }{ -1 }{5}% - \TestSub{ 1 }{ -4 }{5}% - \TestSub{ -4 }{ -1 }{-3}% - \TestSub{ -1 }{ -4 }{3}% - \TestSub{1000000000}{2}{999999998}% - \TestSub{987654321}{111111111}{876543210}% -%<*etex> - \TestSub{100}{50+150}{-100}% - \TestSub{2147483647}{-10+2147483647}{10}% -% -\end{qstest} - -\begin{qstest}{shl}{shl} - \TestShl{0}{0}% - \TestShl{1}{2}% - \TestShl{5621}{11242}% - \TestShl{1073741823}{2147483646}% - \TestShl{-1}{-2}% - \TestShl{-5621}{-11242}% -\end{qstest} - -\begin{qstest}{shr}{shr} - \TestShr{0}{0}% - \TestShr{1}{0}% - \TestShr{2}{1}% - \TestShr{3}{1}% - \TestShr{4}{2}% - \TestShr{5}{2}% - \TestShr{6}{3}% - \TestShr{7}{3}% - \TestShr{8}{4}% - \TestShr{9}{4}% - \TestShr{10}{5}% - \TestShr{11}{5}% - \TestShr{12}{6}% - \TestShr{13}{6}% - \TestShr{14}{7}% - \TestShr{15}{7}% - \TestShr{16}{8}% - \TestShr{17}{8}% - \TestShr{18}{9}% - \TestShr{19}{9}% - \TestShr{20}{10}% - \TestShr{21}{10}% - \TestShr{22}{11}% - \TestShr{11241}{5620}% - \TestShr{73054202}{36527101}% - \TestShr{2147483646}{1073741823}% - \TestShr{-1}{0}% - \TestShr{-2}{-1}% - \TestShr{-3}{-1}% - \TestShr{-11241}{-5620}% -\end{qstest} - -\begin{qstest}{mul}{mul} - \TestMul{0}{0}{0}% - \TestMul{1}{0}{0}% - \TestMul{0}{1}{0}% - \TestMul{1}{1}{1}% - \TestMul{3}{1}{3}% - \TestMul{1}{-3}{-3}% - \TestMul{-4}{-5}{20}% - \TestMul{3}{7}{21}% - \TestMul{7}{3}{21}% - \TestMul{3}{-7}{-21}% - \TestMul{7}{-3}{-21}% - \TestMul{-3}{7}{-21}% - \TestMul{-7}{3}{-21}% - \TestMul{-3}{-7}{21}% - \TestMul{-7}{-3}{21}% - \TestMul{12}{11}{132}% - \TestMul{999}{333}{332667}% - \TestMul{1000}{4321}{4321000}% - \TestMul{12345}{173955}{2147474475}% - \TestMul{1073741823}{2}{2147483646}% - \TestMul{2}{1073741823}{2147483646}% - \TestMul{-1073741823}{2}{-2147483646}% - \TestMul{2}{-1073741823}{-2147483646}% -%<*etex> - \TestMul{2+3}{5+7}{60}% - \TestMul{2147483647}{2147483647/2147483647}{2147483647}% -% -\end{qstest} - -\begin{qstest}{sqr}{sqr} - \TestSqr{0}{0}% - \TestSqr{1}{1}% - \TestSqr{2}{4}% - \TestSqr{3}{9}% - \TestSqr{4}{16}% - \TestSqr{9}{81}% - \TestSqr{10}{100}% - \TestSqr{46340}{2147395600}% - \TestSqr{-1}{1}% - \TestSqr{-2}{4}% - \TestSqr{-46340}{2147395600}% -\end{qstest} - -\begin{qstest}{pow}{pow} - \TestPow{-2}{0}{1}% - \TestPow{-1}{0}{1}% - \TestPow{0}{0}{1}% - \TestPow{1}{0}{1}% - \TestPow{2}{0}{1}% - \TestPow{3}{0}{1}% - \TestPow{-2}{1}{-2}% - \TestPow{-1}{1}{-1}% - \TestPow{1}{1}{1}% - \TestPow{2}{1}{2}% - \TestPow{3}{1}{3}% - \TestPow{-2}{2}{4}% - \TestPow{-1}{2}{1}% - \TestPow{0}{2}{0}% - \TestPow{1}{2}{1}% - \TestPow{2}{2}{4}% - \TestPow{3}{2}{9}% - \TestPow{0}{1}{0}% - \TestPow{1}{-2}{1}% - \TestPow{1}{-1}{1}% - \TestPow{-1}{-2}{1}% - \TestPow{-1}{-1}{-1}% - \TestPow{-1}{3}{-1}% - \TestPow{-1}{4}{1}% - \TestPow{-2}{-1}{0}% - \TestPow{-2}{-2}{0}% - \TestPow{2}{3}{8}% - \TestPow{2}{4}{16}% - \TestPow{2}{5}{32}% - \TestPow{2}{6}{64}% - \TestPow{2}{7}{128}% - \TestPow{2}{8}{256}% - \TestPow{2}{9}{512}% - \TestPow{2}{10}{1024}% - \TestPow{-2}{3}{-8}% - \TestPow{-2}{4}{16}% - \TestPow{-2}{5}{-32}% - \TestPow{-2}{6}{64}% - \TestPow{-2}{7}{-128}% - \TestPow{-2}{8}{256}% - \TestPow{-2}{9}{-512}% - \TestPow{-2}{10}{1024}% - \TestPow{3}{3}{27}% - \TestPow{3}{4}{81}% - \TestPow{3}{5}{243}% - \TestPow{-3}{3}{-27}% - \TestPow{-3}{4}{81}% - \TestPow{-3}{5}{-243}% - \TestPow{2}{30}{1073741824}% - \TestPow{-3}{19}{-1162261467}% - \TestPow{5}{13}{1220703125}% - \TestPow{-7}{11}{-1977326743}% -\end{qstest} - -\begin{qstest}{div}{div} - \TestDiv{1}{1}{1}% - \TestDiv{2}{1}{2}% - \TestDiv{-2}{1}{-2}% - \TestDiv{2}{-1}{-2}% - \TestDiv{-2}{-1}{2}% - \TestDiv{15}{2}{7}% - \TestDiv{-16}{2}{-8}% - \TestDiv{1}{2}{0}% - \TestDiv{1}{3}{0}% - \TestDiv{2}{3}{0}% - \TestDiv{-2}{3}{0}% - \TestDiv{2}{-3}{0}% - \TestDiv{-2}{-3}{0}% - \TestDiv{13}{3}{4}% - \TestDiv{-13}{-3}{4}% - \TestDiv{-13}{3}{-4}% - \TestDiv{-6}{5}{-1}% - \TestDiv{-5}{5}{-1}% - \TestDiv{-4}{5}{0}% - \TestDiv{-3}{5}{0}% - \TestDiv{-2}{5}{0}% - \TestDiv{-1}{5}{0}% - \TestDiv{0}{5}{0}% - \TestDiv{1}{5}{0}% - \TestDiv{2}{5}{0}% - \TestDiv{3}{5}{0}% - \TestDiv{4}{5}{0}% - \TestDiv{5}{5}{1}% - \TestDiv{6}{5}{1}% - \TestDiv{-5}{4}{-1}% - \TestDiv{-4}{4}{-1}% - \TestDiv{-3}{4}{0}% - \TestDiv{-2}{4}{0}% - \TestDiv{-1}{4}{0}% - \TestDiv{0}{4}{0}% - \TestDiv{1}{4}{0}% - \TestDiv{2}{4}{0}% - \TestDiv{3}{4}{0}% - \TestDiv{4}{4}{1}% - \TestDiv{5}{4}{1}% - \TestDiv{12345}{678}{18}% - \TestDiv{32372}{5952}{5}% - \TestDiv{284271294}{18162}{15651}% - \TestDiv{217652429}{12561}{17327}% - \TestDiv{462028434}{5439}{84947}% - \TestDiv{2147483647}{1000}{2147483}% - \TestDiv{2147483647}{-1000}{-2147483}% - \TestDiv{-2147483647}{1000}{-2147483}% - \TestDiv{-2147483647}{-1000}{2147483}% -\end{qstest} - -\begin{qstest}{mod}{mod} - \TestMod{-6}{5}{4}% - \TestMod{-5}{5}{0}% - \TestMod{-4}{5}{1}% - \TestMod{-3}{5}{2}% - \TestMod{-2}{5}{3}% - \TestMod{-1}{5}{4}% - \TestMod{0}{5}{0}% - \TestMod{1}{5}{1}% - \TestMod{2}{5}{2}% - \TestMod{3}{5}{3}% - \TestMod{4}{5}{4}% - \TestMod{5}{5}{0}% - \TestMod{6}{5}{1}% - \TestMod{-5}{4}{3}% - \TestMod{-4}{4}{0}% - \TestMod{-3}{4}{1}% - \TestMod{-2}{4}{2}% - \TestMod{-1}{4}{3}% - \TestMod{0}{4}{0}% - \TestMod{1}{4}{1}% - \TestMod{2}{4}{2}% - \TestMod{3}{4}{3}% - \TestMod{4}{4}{0}% - \TestMod{5}{4}{1}% - \TestMod{-6}{-5}{-1}% - \TestMod{-5}{-5}{0}% - \TestMod{-4}{-5}{-4}% - \TestMod{-3}{-5}{-3}% - \TestMod{-2}{-5}{-2}% - \TestMod{-1}{-5}{-1}% - \TestMod{0}{-5}{0}% - \TestMod{1}{-5}{-4}% - \TestMod{2}{-5}{-3}% - \TestMod{3}{-5}{-2}% - \TestMod{4}{-5}{-1}% - \TestMod{5}{-5}{0}% - \TestMod{6}{-5}{-4}% - \TestMod{-5}{-4}{-1}% - \TestMod{-4}{-4}{0}% - \TestMod{-3}{-4}{-3}% - \TestMod{-2}{-4}{-2}% - \TestMod{-1}{-4}{-1}% - \TestMod{0}{-4}{0}% - \TestMod{1}{-4}{-3}% - \TestMod{2}{-4}{-2}% - \TestMod{3}{-4}{-1}% - \TestMod{4}{-4}{0}% - \TestMod{5}{-4}{-3}% - \TestMod{2147483647}{1000}{647}% - \TestMod{2147483647}{-1000}{-353}% - \TestMod{-2147483647}{1000}{353}% - \TestMod{-2147483647}{-1000}{-647}% - \TestMod{ 0 }{ 4 }{0}% - \TestMod{ 1 }{ 4 }{1}% - \TestMod{ -1 }{ 4 }{3}% - \TestMod{ 0 }{ -4 }{0}% - \TestMod{ 1 }{ -4 }{-3}% - \TestMod{ -1 }{ -4 }{-1}% -%<*etex> - \TestMod{1+2}{1+3}{3}% - \TestMod{1-2}{1+3}{3}% - \TestMod{1-2}{1-4}{-1}% - \TestMod{1+2}{1-4}{0}% - \TestMod{1+2}{1-5}{-1}% -% -\end{qstest} -% -% \end{macrocode} -% \begin{macrocode} -%<*test2> -\newcommand*{\TestError}[2]{% - \begingroup - \expandafter\def\csname IntCalcError:#1\endcsname{}% - \Expect*{#2}{0}% - \expandafter\def\csname IntCalcError:#1\endcsname{ERROR}% - \Expect*{#2}{0ERROR }% - \endgroup -} -\begin{qstest}{error}{error} - \TestError{FacNegative}{\intcalcFac{-1}}% - \TestError{FacNegative}{\intcalcFac{-2147483647}}% - \TestError{FacOverflow}{\intcalcFac{13}}% - \TestError{FacOverflow}{\intcalcFac{2147483647}}% - \TestError{DivisionByZero}{\intcalcPow{0}{-1}}% - \TestError{DivisionByZero}{\intcalcDiv{1}{0}}% - \TestError{DivisionByZero}{\intcalcMod{1}{0}}% - \TestError{DivisionByZero}{\IntCalcDiv1!0!}% - \TestError{DivisionByZero}{\IntCalcMod1!0!}% -\end{qstest} -% -% \end{macrocode} -% \begin{macrocode} -%<*test2|test4> -\begin{document} -\end{document} -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -4116,10 +3145,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % intcalc.sty & tex/generic/oberdiek/intcalc.sty\\ % intcalc.pdf & doc/latex/oberdiek/intcalc.pdf\\ -% test/intcalc-test1.tex & doc/latex/oberdiek/test/intcalc-test1.tex\\ -% test/intcalc-test2.tex & doc/latex/oberdiek/test/intcalc-test2.tex\\ -% test/intcalc-test3.tex & doc/latex/oberdiek/test/intcalc-test3.tex\\ -% test/intcalc-test4.tex & doc/latex/oberdiek/test/intcalc-test4.tex\\ % intcalc.dtx & source/latex/oberdiek/intcalc.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/intcalc.pdf b/macros/latex/contrib/oberdiek/intcalc.pdf index fc12045817..be33245d32 100644 Binary files a/macros/latex/contrib/oberdiek/intcalc.pdf and b/macros/latex/contrib/oberdiek/intcalc.pdf differ diff --git a/macros/latex/contrib/oberdiek/kvdefinekeys.dtx b/macros/latex/contrib/oberdiek/kvdefinekeys.dtx index f0fcac8889..3b864fc73b 100644 --- a/macros/latex/contrib/oberdiek/kvdefinekeys.dtx +++ b/macros/latex/contrib/oberdiek/kvdefinekeys.dtx @@ -66,7 +66,6 @@ % Installation: % TDS:tex/generic/oberdiek/kvdefinekeys.sty % TDS:doc/latex/oberdiek/kvdefinekeys.pdf -% TDS:doc/latex/oberdiek/test/kvdefinekeys-test1.tex % TDS:source/latex/oberdiek/kvdefinekeys.dtx % %<*ignore> @@ -137,10 +136,6 @@ and the derived files \file{kvdefinekeys.sty}{\from{kvdefinekeys.dtx}{package}}% % \usedir{doc/latex/oberdiek/test}% % \file{kvdefinekeys-test1.tex}{\from{kvdefinekeys.dtx}{test1}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{kvdefinekeys.xml}{\from{kvdefinekeys.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -177,21 +172,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{kvdefinekeys.drv} % @@ -428,118 +408,7 @@ and the derived files \KVD@AtEnd% % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input kvdefinekeys.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -588,7 +457,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % kvdefinekeys.sty & tex/generic/oberdiek/kvdefinekeys.sty\\ % kvdefinekeys.pdf & doc/latex/oberdiek/kvdefinekeys.pdf\\ -% test/kvdefinekeys-test1.tex & doc/latex/oberdiek/test/kvdefinekeys-test1.tex\\ % kvdefinekeys.dtx & source/latex/oberdiek/kvdefinekeys.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/kvdefinekeys.pdf b/macros/latex/contrib/oberdiek/kvdefinekeys.pdf index 3d11f7fbaa..04e7111c2d 100644 Binary files a/macros/latex/contrib/oberdiek/kvdefinekeys.pdf and b/macros/latex/contrib/oberdiek/kvdefinekeys.pdf differ diff --git a/macros/latex/contrib/oberdiek/kvsetkeys.dtx b/macros/latex/contrib/oberdiek/kvsetkeys.dtx index b7377aaaa6..7bbd4fe568 100644 --- a/macros/latex/contrib/oberdiek/kvsetkeys.dtx +++ b/macros/latex/contrib/oberdiek/kvsetkeys.dtx @@ -69,10 +69,6 @@ % TDS:tex/generic/oberdiek/kvsetkeys.sty % TDS:doc/latex/oberdiek/kvsetkeys.pdf % TDS:doc/latex/oberdiek/kvsetkeys-example.tex -% TDS:doc/latex/oberdiek/test/kvsetkeys-test1.tex -% TDS:doc/latex/oberdiek/test/kvsetkeys-test2.tex -% TDS:doc/latex/oberdiek/test/kvsetkeys-test3.tex -% TDS:doc/latex/oberdiek/test/kvsetkeys-test4.tex % TDS:source/latex/oberdiek/kvsetkeys.dtx % %<*ignore> @@ -150,10 +146,6 @@ and the derived files % \file{kvsetkeys-test2.tex}{\from{kvsetkeys.dtx}{test2}}% % \file{kvsetkeys-test3.tex}{\from{kvsetkeys.dtx}{test2,noetex}}% % \file{kvsetkeys-test4.tex}{\from{kvsetkeys.dtx}{test4}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{kvsetkeys.xml}{\from{kvsetkeys.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -190,21 +182,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{kvsetkeys.drv} % @@ -1426,440 +1403,7 @@ $ \x \KVS@AtEnd% % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input kvsetkeys.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Macro tests} -% -% \subsubsection{Preamble} -% -% \begin{macrocode} -%<*test2> -\NeedsTeXFormat{LaTeX2e} -\nofiles -\documentclass{article} -%\let\SavedUnexpanded\unexpanded -%\let\unexpanded\UNDEFINED -\makeatletter -\chardef\KVS@TestMode=1 % -\makeatother -\usepackage{kvsetkeys}[2016/05/16] -%\let\unexpanded\SavedUnexpanded -\usepackage{qstest} -\IncludeTests{*} -\LogTests{log}{*}{*} -% \end{macrocode} -% -% \subsubsection{Time} -% -% \begin{macrocode} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname pdfresettimer\endcsname\relax -\else - \makeatletter - \newcount\SummaryTime - \newcount\TestTime - \SummaryTime=\z@ - \newcommand*{\PrintTime}[2]{% - \typeout{% - [Time #1: \strip@pt\dimexpr\number#2sp\relax\space s]% - }% - }% - \newcommand*{\StartTime}[1]{% - \renewcommand*{\TimeDescription}{#1}% - \pdfresettimer - }% - \newcommand*{\TimeDescription}{}% - \newcommand*{\StopTime}{% - \TestTime=\pdfelapsedtime - \global\advance\SummaryTime\TestTime - \PrintTime\TimeDescription\TestTime - }% - \let\saved@qstest\qstest - \let\saved@endqstest\endqstest - \def\qstest#1#2{% - \saved@qstest{#1}{#2}% - \StartTime{#1}% - }% - \def\endqstest{% - \StopTime - \saved@endqstest - }% - \AtEndDocument{% - \PrintTime{summary}\SummaryTime - }% - \makeatother -\fi -% \end{macrocode} -% -% \subsubsection{Test sets} -% -% \begin{macrocode} -\makeatletter -\def\@makeactive#1{% - \catcode`#1=13\relax -} -\@makeactive\, -\def,{\errmessage{COMMA}} -\@makeother\, -\@makeactive\= -\def={\errmessage{EQUALS}} -\@makeother\= - -\begin{qstest}{normalize}{normalize,active-chars,space-removal}% - \long\def\Test#1#2{% - \@makeother\,% - \@makeother\=% - \scantokens{\toks@={#2}}% - \edef\Result{\the\toks@}% - \@makeother\,% - \@makeother\=% - \@Test{#1}% - \@makeactive\,% - \@Test{#1}% - \@makeactive\=% - \@Test{#1}% - \@makeother\,% - \@Test{#1}% - \@makeother\=% - }% - \long\def\@Test#1{% - \scantokens{\kv@normalize{#1}}% - \expandafter\expandafter\expandafter\Expect - \expandafter\expandafter\expandafter - {\expandafter\kv@list\expandafter}\expandafter{\Result}% - \Expect*{\ifx\kv@list\Result true\else false\fi}{true}% - }% - \Test{}{,}% - \Test{,}{,}% - \Test{,,}{,}% - \Test{,,,}{,}% - \Test{ , }{,}% - \Test{{a}}{,{a},}% - \Test{,{a}}{,{a},}% - \Test{{a},}{,{a},}% - \Test{{a},{b}}{,{a},{b},}% - \Test{{b}={c},{}=,{}={},{d}=}{,{b}={c},{}=,{}={},{d}=,}% - \Test{{}}{,{},}% - \Test{{},{},{}}{,{},{},{},}% - \Test{=}{,=,}% - \Test{=,=,=}{,=,=,=,}% - \Test{a=\par}{,a=\par,}% - \Test{\par}{,\par,}% - \def\TestSet#1{% - \Test{#1#1}{,}% - \Test{#1#1,#1#1}{,}% - \Test{#1#1,#1#1,#1#1}{,}% - \Test{#1#1#1#1#1}{,}% - \Test{{a}#1#1=#1#1{b}}{,{a}={b},}% - }% - \TestSet{ }% - \begingroup - \let\saved@normalize\kv@normalize - \def\kv@normalize#1{% - \saved@normalize{#1}% - \@onelevel@sanitize\kv@list - \@onelevel@sanitize\Result - }% - \Test{#,#=#,{#}={#},{#}=,{#}}{,#,#=#,{#}={#},{#}=,{#},}% - \endgroup - \begingroup - \def\Test#1#2{% - \edef\Result{#2}% - \@Test{#1}% - }% - \Test{{ a = b }}{,{ a = b },}% - \@makeactive\,% - \Test{{,}}{\string,{\noexpand,}\string,}% - \@makeother\,% - \@makeactive\=% - \Test{a={=}}{,a\string={\noexpand=},}% - \endgroup - \Test{a=b}{,a=b,}% - \Test{a={b}}{,a={b},}% - \Test{a ={b}}{,a={b},}% - \Test{a= {b}}{,a={b},}% - \Test{a = {b}}{,a={b},}% - \Test{a = {b} ,}{,a={b},}% - \Test{a}{,a,}% - \Test{ a}{,a,}% - \Test{a }{,a,}% - \Test{ a }{,a,}% - \Test{, a ,}{,a,}% - \Test{, a b ,}{,a b,}% - \Test{,a ,}{,a,}% - \Test{ a =}{,a=,}% - \Test{ a = }{,a=,}% - \Test{a =}{,a=,}% - \Test{{a} =}{,{a}=,}% - \Test{{a}= {}}{,{a}={},}% - \Test{, a = {}}{,a={},}% - \Test{a,,b}{,a,b,}% - \Test{a=\fi}{,a=\fi,}% - \Test{a=\iffalse}{,a=\iffalse,}% - \Test{a=\iffalse,b=\fi}{,a=\iffalse,b=\fi,}% -\end{qstest} - -\begin{qstest}{parse}{parse,brace-removal} - \def\Processor#1#2{% - \expandafter\Expect\expandafter{\kv@key}{#1}% - \toks@{#2}% - \edef\x{\the\toks@}% - \ifx\kv@value\relax - \Expect*{\the\toks@}{}% - \def\Value{<>}% - \else - \edef\Value{[\the\toks@]}% - \@onelevel@sanitize\Value - \fi - \toks@{#1}% - \ifx\Result\@empty - \edef\Result{[\the\toks@]=\Value}% - \else - \edef\Result{\Result,[\the\toks@]=\Value}% - \fi - \@onelevel@sanitize\Result - }% - \def\Test#1#2{% - \sbox0{% - \let\Result\@empty - \kv@parse{#1}\Processor - \Expect*{\Result}{#2}% - }% - \Expect*{\the\wd0}{0.0pt}% - }% - \Test{}{}% - \Test{{}}{}% - \Test{{{}}}{[]=<>}% - \Test{{{{}}}}{[{}]=<>}% - \Test{a}{[a]=<>}% - \Test{{a}}{[a]=<>}% - \Test{{a}}{[a]=<>}% - \Test{{{a}}}{[a]=<>}% - \Test{{{{a}}}}{[{a}]=<>}% - \Test{a=}{[a]=[]}% - \Test{{a}=}{[a]=[]}% - \Test{{{a}}=}{[{a}]=[]}% - \Test{a={}}{[a]=[]}% - \Test{{a}={{}}}{[a]=[{}]}% - \Test{a=b}{[a]=[b]}% - \Test{a=\fi}{[a]=[\fi]}% - \Test{a=\iffalse}{[a]=[\iffalse]}% - \Test{a=\iffalse,b=\fi}{[a]=[\iffalse],[b]=[\fi]}% - \Test{{ a = b }}{[ a ]=[ b ]}% - \Test{{{ a = b }}}{[ a = b ]=<>}% -\end{qstest} - -\begin{qstest}{comma}{comma,parse} - \def\Processor#1{% - \expandafter\Expect\expandafter{\comma@entry}{#1}% - \toks@{#1}% - \ifx\Result\@empty - \edef\Result{[\the\toks@]}% - \else - \edef\Result{\Result,[\the\toks@]}% - \fi - \@onelevel@sanitize\Result - }% - \def\Test#1#2{% - \sbox0{% - \let\Result\@empty - \comma@parse{#1}\Processor - \Expect*{\Result}{#2}% - }% - \Expect*{\the\wd0}{0.0pt}% - }% - \Test{}{}% - \Test{{}}{}% - \Test{{{}}}{[{}]}% - \Test{a}{[a]}% - \Test{{a}}{[a]}% - \Test{{{a}}}{[{a}]}% - \Test{a=}{[a=]}% - \Test{a\fi}{[a\fi]}% - \Test{a\iffalse}{[a\iffalse]}% - \Test{\iffalse,\fi}{[\iffalse],[\fi]}% - \Test{ a , b , c }{[a],[b],[c]}% - \Test{ { } ,{ }, { }, { } , { } }{[ ],[ ],[ ],[ ],[ ]}% - \Test{ {{}} ,{{}}, {{}}, {{}} , {{}} }{[{}],[{}],[{}],[{}],[{}]}% -\end{qstest} - -\begin{document} -\end{document} -% -% \end{macrocode} -% -% \subsection{Tests for key value processing handler} -% -% \begin{macrocode} -%<*test4> -\catcode`\{=1 -\catcode`\}=2 -\catcode`\#=6 -\catcode`\@=11 -\input kvdefinekeys.sty\relax -\input kvsetkeys.sty\relax -\input infwarerr.sty\relax -\def\Error#1{% - \@PackageError{test}{#1}\@ehc -} -% \end{macrocode} -% \begin{macrocode} -\def\temp#1#2{% - \kv@define@key{#1}{#2}{% - \edef\result{% - \result - [#1:#2=##1]% hash-ok - }% - }% -} -\temp{FA}{key1} -\temp{FA}{key2} -\temp{FB}{key3} -\temp{FB}{key3} -% \end{macrocode} -% \begin{macrocode} -\setbox0=\hbox{% - \def\result{}% - \kvsetknownkeys{FA}\cmd{key1=234,key3=456}% - \def\expected{[FA:key1=234]}% - \ifx\expected\result - \else - \Error{% - \string\kvsetknownkeys/\string\result\MessageBreak - Expected: \expected\MessageBreak - Result: \space\result - }% - \fi - \def\expected{{key3}={456}}% - \ifx\cmd\expected - \else - \Error{% - \string\kvsetknownkeys/\string\cmd\MessageBreak - Expected: \expected\MessageBreak - Result: \space\cmd - }% - \fi -} -\ifdim\wd0=0pt % -\else - \Error{Spurious spaces?}% -\fi -% \end{macrocode} -% \begin{macrocode} -\csname @@end\endcsname\end -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -1909,10 +1453,6 @@ $ \x % kvsetkeys.sty & tex/generic/oberdiek/kvsetkeys.sty\\ % kvsetkeys.pdf & doc/latex/oberdiek/kvsetkeys.pdf\\ % kvsetkeys-example.tex & doc/latex/oberdiek/kvsetkeys-example.tex\\ -% test/kvsetkeys-test1.tex & doc/latex/oberdiek/test/kvsetkeys-test1.tex\\ -% test/kvsetkeys-test2.tex & doc/latex/oberdiek/test/kvsetkeys-test2.tex\\ -% test/kvsetkeys-test3.tex & doc/latex/oberdiek/test/kvsetkeys-test3.tex\\ -% test/kvsetkeys-test4.tex & doc/latex/oberdiek/test/kvsetkeys-test4.tex\\ % kvsetkeys.dtx & source/latex/oberdiek/kvsetkeys.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/kvsetkeys.pdf b/macros/latex/contrib/oberdiek/kvsetkeys.pdf index 421d79a864..c5afe2fbb5 100644 Binary files a/macros/latex/contrib/oberdiek/kvsetkeys.pdf and b/macros/latex/contrib/oberdiek/kvsetkeys.pdf differ diff --git a/macros/latex/contrib/oberdiek/letltxmacro.dtx b/macros/latex/contrib/oberdiek/letltxmacro.dtx deleted file mode 100644 index 86199e1063..0000000000 --- a/macros/latex/contrib/oberdiek/letltxmacro.dtx +++ /dev/null @@ -1,1153 +0,0 @@ -% \iffalse meta-comment -% -% File: letltxmacro.dtx -% Version: 2016/05/16 v1.5 -% Info: Let assignment for LaTeX macros -% -% Copyright (C) -% 2008, 2010 Heiko Oberdiek -% 2016-2019 Oberdiek Package Support Group -% https://github.com/ho-tex/oberdiek/issues -% -% This work may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either -% version 1.3c of this license or (at your option) any later -% version. This version of this license is in -% https://www.latex-project.org/lppl/lppl-1-3c.txt -% and the latest version of this license is in -% https://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 Maintainers of this work are -% Heiko Oberdiek and the Oberdiek Package Support Group -% https://github.com/ho-tex/oberdiek/issues -% -% This work consists of the main source file letltxmacro.dtx -% and the derived files -% letltxmacro.sty, letltxmacro.pdf, letltxmacro.ins, letltxmacro.drv, -% letltxmacro-showcases.tex, letltxmacro-test1.tex, -% letltxmacro-test2.tex. -% -% Distribution: -% CTAN:macros/latex/contrib/oberdiek/letltxmacro.dtx -% CTAN:macros/latex/contrib/oberdiek/letltxmacro.pdf -% -% Unpacking: -% (a) If letltxmacro.ins is present: -% tex letltxmacro.ins -% (b) Without letltxmacro.ins: -% tex letltxmacro.dtx -% (c) If you insist on using LaTeX -% latex \let\install=y\input{letltxmacro.dtx} -% (quote the arguments according to the demands of your shell) -% -% Documentation: -% (a) If letltxmacro.drv is present: -% latex letltxmacro.drv -% (b) Without letltxmacro.drv: -% latex letltxmacro.dtx; ... -% The class ltxdoc loads the configuration file ltxdoc.cfg -% if available. Here you can specify further options, e.g. -% use A4 as paper format: -% \PassOptionsToClass{a4paper}{article} -% -% Programm calls to get the documentation (example): -% pdflatex letltxmacro.dtx -% makeindex -s gind.ist letltxmacro.idx -% pdflatex letltxmacro.dtx -% makeindex -s gind.ist letltxmacro.idx -% pdflatex letltxmacro.dtx -% -% Installation: -% TDS:tex/latex/oberdiek/letltxmacro.sty -% TDS:doc/latex/oberdiek/letltxmacro.pdf -% TDS:doc/latex/oberdiek/letltxmacro-showcases.tex -% TDS:doc/latex/oberdiek/test/letltxmacro-test1.tex -% TDS:doc/latex/oberdiek/test/letltxmacro-test2.tex -% TDS:source/latex/oberdiek/letltxmacro.dtx -% -%<*ignore> -\begingroup - \catcode123=1 % - \catcode125=2 % - \def\x{LaTeX2e}% -\expandafter\endgroup -\ifcase 0\ifx\install y1\fi\expandafter - \ifx\csname processbatchFile\endcsname\relax\else1\fi - \ifx\fmtname\x\else 1\fi\relax -\else\csname fi\endcsname -% -%<*install> -\input docstrip.tex -\Msg{************************************************************************} -\Msg{* Installation} -\Msg{* Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO)} -\Msg{************************************************************************} - -\keepsilent -\askforoverwritefalse - -\let\MetaPrefix\relax -\preamble - -This is a generated file. - -Project: letltxmacro -Version: 2016/05/16 v1.5 - -Copyright (C) - 2008, 2010 Heiko Oberdiek - 2016-2019 Oberdiek Package Support Group - -This work may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either -version 1.3c of this license or (at your option) any later -version. This version of this license is in - https://www.latex-project.org/lppl/lppl-1-3c.txt -and the latest version of this license is in - https://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 Maintainers of this work are -Heiko Oberdiek and the Oberdiek Package Support Group -https://github.com/ho-tex/oberdiek/issues - - -This work consists of the main source file letltxmacro.dtx -and the derived files - letltxmacro.sty, letltxmacro.pdf, letltxmacro.ins, letltxmacro.drv, - letltxmacro-showcases.tex, letltxmacro-test1.tex, - letltxmacro-test2.tex. - -\endpreamble -\let\MetaPrefix\DoubleperCent - -\generate{% - \file{letltxmacro.ins}{\from{letltxmacro.dtx}{install}}% - \file{letltxmacro.drv}{\from{letltxmacro.dtx}{driver}}% - \usedir{tex/latex/oberdiek}% - \file{letltxmacro.sty}{\from{letltxmacro.dtx}{package}}% - \usedir{doc/latex/oberdiek}% - \file{letltxmacro-showcases.tex}{\from{letltxmacro.dtx}{showcases}}% -% \usedir{doc/latex/oberdiek/test}% -% \file{letltxmacro-test1.tex}{\from{letltxmacro.dtx}{test1}}% -% \file{letltxmacro-test2.tex}{\from{letltxmacro.dtx}{test2}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{letltxmacro.xml}{\from{letltxmacro.dtx}{catalogue}}% -} - -\catcode32=13\relax% active space -\let =\space% -\Msg{************************************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move the following} -\Msg{* file into a directory searched by TeX:} -\Msg{*} -\Msg{* letltxmacro.sty} -\Msg{*} -\Msg{* To produce the documentation run the file `letltxmacro.drv'} -\Msg{* through LaTeX.} -\Msg{*} -\Msg{* Happy TeXing!} -\Msg{*} -\Msg{************************************************************************} - -\endbatchfile -% -%<*ignore> -\fi -% -%<*driver> -\NeedsTeXFormat{LaTeX2e} -\ProvidesFile{letltxmacro.drv}% - [2016/05/16 v1.5 Let assignment for LaTeX macros (HO)]% -\documentclass{ltxdoc} -\usepackage{holtxdoc}[2011/11/22] -\begin{document} - \DocInput{letltxmacro.dtx}% -\end{document} -% -% \fi -% -% -% \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 \~} -% -% \GetFileInfo{letltxmacro.drv} -% -% \title{The \xpackage{letltxmacro} package} -% \date{2016/05/16 v1.5} -% \author{Heiko Oberdiek\thanks -% {Please report any issues at \url{https://github.com/ho-tex/oberdiek/issues}}} -% -% \maketitle -% -% \begin{abstract} -% \TeX's \cs{let} assignment does not work for \LaTeX\ macros -% with optional arguments or for macros that are defined -% as robust macros by \cs{DeclareRobustCommand}. This package -% defines \cs{LetLtxMacro} that also takes care of the involved -% internal macros. -% \end{abstract} -% -% \tableofcontents -% -% \section{Documentation} -% -% If someone wants to redefine a macro with using the old -% meaning, then one method is \TeX's command \cs{let}: -%\begin{quote} -%\begin{verbatim} -%\newcommand{\Macro}{\typeout{Test Macro}} -%\let\SavedMacro=\Macro -%\renewcommand{\Macro}{% -% \typeout{Begin}% -% \SavedMacro -% \typeout{End}% -%} -%\end{verbatim} -%\end{quote} -% However, this method fails, if \cs{Macro} is defined -% by \cs{DeclareRobustCommand} and/or has an optional argument. -% In both cases \LaTeX\ defines an additional internal macro -% that is forgotten in the simple \cs{let} assignment of -% the example above. -% -% \begin{declcs}{LetLtxMacro} \M{new macro} \M{old macro} -% \end{declcs} -% Macro \cs{LetLtxMacro} behaves similar to \TeX's \cs{let} -% assignment, but it takes care of macros that are -% defined by \cs{DeclareRobustCommand} and/or have optional -% arguments. Example: -%\begin{quote} -%\begin{verbatim} -%\DeclareRobustCommand{\Macro}[1][default]{...} -%\LetLtxMacro{\SavedMacro}{\Macro} -%\end{verbatim} -%\end{quote} -% Then macro \cs{SavedMacro} only uses internal macro names -% that are derived from \cs{SavedMacro}'s macro name. Macro \cs{Macro} -% can now be redefined without affecting \cs{SavedMacro}. -% -% \begin{declcs}{GlobalLetLtxMacro} \M{new macro} \M{old macro} -% \end{declcs} -% Like \cs{LetLtxMacro}, but the \meta{new macro} is defined globally. -% Since version 2016/05/16~v1.4. -% -% \subsection{Supported macro definition commands} -% -% \begin{quote} -% \begin{tabular}{@{}ll@{}} -% \cs{newcommand}, \cs{renewcommand} & latex/base\\ -% \cs{newenvironment}, \cs{renewenvironment} & latex/base\\ -% \cs{DeclareRobustCommand}& latex/base\\ -% \cs{newrobustcmd}, \cs{renewrobustcmd} & etoolbox\\ -% \cs{robustify} & etoolbox 2008/06/22 v1.6\\ -% \end{tabular} -% \end{quote} -% -% \StopEventually{ -% } -% -% \section{Implementation} -% -% \subsection{Show cases} -% -% \subsubsection{\xfile{letltxmacro-showcases.tex}} -% -% \begin{macrocode} -%<*showcases> -\NeedsTeXFormat{LaTeX2e} -\makeatletter -% \end{macrocode} -% \begin{macro}{\Line} -% The result is displayed by macro \cs{Line}. The percent symbol -% at line start allows easy grepping and inserting into the DTX -% file. -% \begin{macrocode} -\newcommand*{\Line}[1]{% - \typeout{\@percentchar#1}% -} -% \end{macrocode} -% \end{macro} -% \begin{macrocode} -\newcommand*{\ShowCmdName}[1]{% - \@ifundefined{#1}{}{% - \Line{% - \space\space(\expandafter\string\csname#1\endcsname) = % - (\expandafter\meaning\csname#1\endcsname)% - }% - }% -} -\newcommand*{\ShowCmds}[1]{% - \ShowCmdName{#1}% - \ShowCmdName{#1 }% - \ShowCmdName{\\#1}% - \ShowCmdName{\\#1 }% -} -\let\\\@backslashchar -% \end{macrocode} -% \begin{macro}{\ShowDef} -% \begin{macrocode} -\newcommand*{\ShowDef}[2]{% - \begingroup - \Line{}% - \newcommand*{\DefString}{#2}% - \@onelevel@sanitize\DefString - \Line{\DefString}% - #2% - \ShowCmds{#1}% - \endgroup -} -% \end{macrocode} -% \end{macro} -% \begin{macrocode} -\typeout{} -\Line{* LaTeX definitions:} -\ShowDef{cmd}{% - \newcommand{\cmd}[2][default]{}% -} -\ShowDef{cmd}{% - \DeclareRobustCommand{\cmd}{}% -} -\ShowDef{cmd}{% - \DeclareRobustCommand{\cmd}[2][default]{}% -} -\typeout{} -% \end{macrocode} -% The minimal version of package \xpackage{etoolbox} is 2008/06/12 v1.6a -% because it fixes \cs{robustify}. -% \begin{macrocode} -\RequirePackage{etoolbox}[2008/06/12]% -\Line{} -\Line{* etoolbox's robust definitions:} -\ShowDef{cmd}{% - \newrobustcmd{\cmd}{}% -} -\ShowDef{cmd}{% - \newrobustcmd{\cmd}[2][default]{}% -} -\Line{} -\Line{* etoolbox's \string\robustify:} -\ShowDef{cmd}{% - \newcommand{\cmd}[2][default]{} % - \robustify{\cmd}% -} -\ShowDef{cmd}{% - \DeclareRobustCommand{\cmd}{} % - \robustify{\cmd}% -} -\ShowDef{cmd}{% - \DeclareRobustCommand{\cmd}[2][default]{} % - \robustify{\cmd}% -} -\typeout{} -\@@end -% -% \end{macrocode} -% -% \subsubsection{Result} -% -% \begingroup -% \makeatletter -% \let\org@verbatim\@verbatim -% \def\@verbatim{^^A -% \org@verbatim -% \catcode`\~=\active -% }^^A -% \let~\textvisiblespace -%\begin{verbatim} -%* LaTeX definitions: -% -%\newcommand {\cmd }[2][default]{} -% (\cmd) = (macro:->\@protected@testopt \cmd \\cmd {default}) -% (\\cmd) = (\long macro:[#1]#2->) -% -%\DeclareRobustCommand {\cmd }{} -% (\cmd) = (macro:->\protect \cmd~ ) -% (\cmd~) = (\long macro:->) -% -%\DeclareRobustCommand {\cmd }[2][default]{} -% (\cmd) = (macro:->\protect \cmd~ ) -% (\cmd~) = (macro:->\@protected@testopt \cmd~ \\cmd~ {default}) -% (\\cmd~) = (\long macro:[#1]#2->) -% -%* etoolbox's robust definitions: -% -%\newrobustcmd {\cmd }{} -% (\cmd) = (\protected\long macro:->) -% -%\newrobustcmd {\cmd }[2][default]{} -% (\cmd) = (\protected macro:->\@testopt \\cmd {default}) -% (\\cmd) = (\long macro:[#1]#2->) -% -%* etoolbox's \robustify: -% -%\newcommand {\cmd }[2][default]{} \robustify {\cmd } -% (\cmd) = (\protected macro:->\@protected@testopt \cmd \\cmd {default}) -% (\\cmd) = (\long macro:[#1]#2->) -% -%\DeclareRobustCommand {\cmd }{} \robustify {\cmd } -% (\cmd) = (\protected macro:->) -% -%\DeclareRobustCommand {\cmd }[2][default]{} \robustify {\cmd } -% (\cmd) = (\protected macro:->\@protected@testopt \cmd~ \\cmd~ {default}) -% (\cmd~) = (macro:->\@protected@testopt \cmd~ \\cmd~ {default}) -% (\\cmd~) = (\long macro:[#1]#2->) -%\end{verbatim} -% \endgroup -% -% \subsection{Package} -% -% \begin{macrocode} -%<*package> -% \end{macrocode} -% -% \subsubsection{Catcodes and identification} -% -% \begin{macrocode} -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode123=1 % { - \catcode125=2 % } - \catcode64=11 % @ - \def\x{\endgroup - \expandafter\edef\csname llm@AtEnd\endcsname{% - \endlinechar=\the\endlinechar\relax - \catcode13=\the\catcode13\relax - \catcode32=\the\catcode32\relax - \catcode35=\the\catcode35\relax - \catcode61=\the\catcode61\relax - \catcode64=\the\catcode64\relax - \catcode123=\the\catcode123\relax - \catcode125=\the\catcode125\relax - }% - }% -\x\catcode61\catcode48\catcode32=10\relax% -\catcode13=5 % ^^M -\endlinechar=13 % -\catcode35=6 % # -\catcode64=11 % @ -\catcode123=1 % { -\catcode125=2 % } -\def\TMP@EnsureCode#1#2{% - \edef\llm@AtEnd{% - \llm@AtEnd - \catcode#1=\the\catcode#1\relax - }% - \catcode#1=#2\relax -} -\TMP@EnsureCode{40}{12}% ( -\TMP@EnsureCode{41}{12}% ) -\TMP@EnsureCode{42}{12}% * -\TMP@EnsureCode{45}{12}% - -\TMP@EnsureCode{46}{12}% . -\TMP@EnsureCode{47}{12}% / -\TMP@EnsureCode{58}{12}% : -\TMP@EnsureCode{62}{12}% > -\TMP@EnsureCode{91}{12}% [ -\TMP@EnsureCode{93}{12}% ] -\edef\llm@AtEnd{% - \llm@AtEnd - \escapechar\the\escapechar\relax - \noexpand\endinput -} -\escapechar=92 % `\\ -% \end{macrocode} -% -% Package identification. -% \begin{macrocode} -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{letltxmacro}% - [2016/05/16 v1.5 Let assignment for LaTeX macros (HO)] -% \end{macrocode} -% -% \subsubsection{Main macros} -% -% \begin{macro}{\LetLtxMacro} -% \begin{macrocode} -\newcommand*{\LetLtxMacro}{% - \llm@ModeLetLtxMacro{}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\GlobalLetLtxMacro} -% \begin{macrocode} -\newcommand*{\GlobalLetLtxMacro}{% - \llm@ModeLetLtxMacro\global -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\llm@ModeLetLtxMacro} -% \begin{macrocode} -\newcommand*{\llm@ModeLetLtxMacro}[3]{% - \edef\llm@escapechar{\the\escapechar}% - \escapechar=-1 % - \edef\reserved@a{% - \noexpand\protect - \expandafter\noexpand - \csname\string#3 \endcsname - }% - \ifx\reserved@a#3\relax - #1\edef#2{% - \noexpand\protect - \expandafter\noexpand - \csname\string#2 \endcsname - }% - #1\expandafter\let - \csname\string#2 \expandafter\endcsname - \csname\string#3 \endcsname - \expandafter\llm@LetLtxMacro - \csname\string#2 \expandafter\endcsname - \csname\string#3 \endcsname{#1}% - \else - \llm@LetLtxMacro{#2}{#3}{#1}% - \fi - \escapechar=\llm@escapechar\relax -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\llm@LetLtxMacro} -% \begin{macrocode} -\def\llm@LetLtxMacro#1#2#3{% - \escapechar=92 % - \expandafter\llm@CheckParams\meaning#2:->\@nil{% - \begingroup - \def\@protected@testopt{% - \expandafter\@testopt\@gobble - }% - \def\@testopt##1##2{% - \toks@={##2}% - }% - \let\llm@testopt\@empty - \edef\x{% - \noexpand\@protected@testopt - \noexpand#2% - \expandafter\noexpand\csname\string#2\endcsname - }% - \expandafter\expandafter\expandafter\def - \expandafter\expandafter\expandafter\y - \expandafter\expandafter\expandafter{% - \expandafter\llm@CarThree#2{}{}{}\llm@nil - }% - \ifx\x\y - #2% - \def\llm@testopt{% - \noexpand\@protected@testopt - \noexpand#1% - }% - \else - \edef\x{% - \noexpand\@testopt - \expandafter\noexpand - \csname\string#2\endcsname - }% - \expandafter\expandafter\expandafter\def - \expandafter\expandafter\expandafter\y - \expandafter\expandafter\expandafter{% - \expandafter\llm@CarTwo#2{}{}\llm@nil - }% - \ifx\x\y - #2% - \def\llm@testopt{% - \noexpand\@testopt - }% - \fi - \fi - \ifx\llm@testopt\@empty - \else - \llm@protected\xdef\llm@GlobalTemp{% - \llm@testopt - \expandafter\noexpand - \csname\string#1\endcsname - {\the\toks@}% - }% - \fi - \expandafter\endgroup\ifx\llm@testopt\@empty - #3\let#1=#2\relax - \else - #3\let#1=\llm@GlobalTemp - #3\expandafter\let - \csname\string#1\expandafter\endcsname - \csname\string#2\endcsname - \fi - }{% - #3\let#1=#2\relax - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\llm@CheckParams} -% \begin{macrocode} -\def\llm@CheckParams#1:->#2\@nil{% - \begingroup - \def\x{#1}% - \ifx\x\llm@macro - \endgroup - \def\llm@protected{}% - \expandafter\@firstoftwo - \else - \ifx\x\llm@protectedmacro - \endgroup - \def\llm@protected{\protected}% - \expandafter\expandafter\expandafter\@firstoftwo - \else - \endgroup - \expandafter\expandafter\expandafter\@secondoftwo - \fi - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\llm@macro} -% \begin{macrocode} -\def\llm@macro{macro} -\@onelevel@sanitize\llm@macro -% \end{macrocode} -% \end{macro} -% \begin{macro}{\llm@protectedmacro} -% \begin{macrocode} -\def\llm@protectedmacro{\protected macro} -\@onelevel@sanitize\llm@protectedmacro -% \end{macrocode} -% \end{macro} -% \begin{macro}{\llm@CarThree} -% \begin{macrocode} -\def\llm@CarThree#1#2#3#4\llm@nil{#1#2#3}% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\llm@CarTwo} -% \begin{macrocode} -\def\llm@CarTwo#1#2#3\llm@nil{#1#2}% -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\llm@AtEnd% -% -% \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\NeedsTeXFormat{LaTeX2e} -\documentclass{minimal} -\makeatletter -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@\@ne -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@\@ne - \repeat -} -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{127}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\{=1 % - \catcode`\}=2 % - \catcode`\#=6 % - \catcode`\[=12 % - \catcode`\]=12 % - \catcode`\%=14 % - \catcode`\ =10 % - \catcode13=5 % - \RequirePackage{letltxmacro}[2016/05/16]\relax - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Package tests} -% -% \begin{macrocode} -%<*test2> -% \end{macrocode} -% \begin{macrocode} -\NeedsTeXFormat{LaTeX2e} -\nofiles -\documentclass{minimal} - -\usepackage{letltxmacro}[2016/05/16] - -\usepackage{qstest} -\IncludeTests{*} -\LogTests{log}{*}{*} - -\makeatletter - -\def\TestDef#1{% - \begingroup - \@makeother\\% - \@makeother\ % - \expandafter\@TestDef\csname #1\endcsname -} -\def\@TestDef#1#2{% - \edef\a{\expandafter\strip@prefix\meaning#1}% - \edef\b{\detokenize{#2}}% - \ifx\a\b - \else - \typeout{1 [\a]}% - \typeout{2 [\b]}% - \fi - \endgroup - \Expect*{\expandafter\strip@prefix\meaning#1}*{\detokenize{#2}}% -} -\def\TestEquals#1#2{% - \Expect*{% - \expandafter\ifx\csname#1\expandafter\endcsname - \csname#2\endcsname - equals% - \else - wrong% - \fi - }{equals}% -} -\def\SaveA{% - \let\SavedA\TestA - \expandafter\let\csname\string\SavedA\expandafter\endcsname - \csname\string\TestA\endcsname - \expandafter\let\csname SavedA \expandafter\endcsname - \csname TestA \endcsname -} -\def\CheckA{% - \TestEquals{SavedA}{TestA}% - \TestEquals{\string\SavedA}{\string\TestA}% - \TestEquals{SavedA }{TestA }% -} - -\begin{qstest}{robust}{robust} - \begingroup - \DeclareRobustCommand*{\TestA}{Test}% - \SaveA - \TestDef{TestA}{\protect \TestA }% - \CheckA - \DeclareRobustCommand{\TestA}{Test}% - \SaveA - \TestDef{TestA}{\protect \TestA }% - \LetLtxMacro\TestB\TestA - \TestDef{TestB}{\protect \TestB }% - \TestEquals{TestB }{TestA }% - \CheckA - \GlobalLetLtxMacro\TestC\TestA - \CheckA - \endgroup - \TestDef{TestC}{\protect \TestC }% - \DeclareRobustCommand{\TestA}{Test}% - \TestEquals{TestC }{TestA }% -\end{qstest} - -\begin{qstest}{default}{default} - \begingroup - \newcommand{\TestA}[1][\relax default \empty]{TestA #1}% - \SaveA - \TestDef - {TestA}{\@protected@testopt \TestA \\TestA {\relax default \empty }}% - \LetLtxMacro\TestB\TestA - \TestDef - {TestB}{\@protected@testopt \TestB \\TestB {\relax default \empty }}% - \CheckA - \TestEquals{\string\TestB}{\string\TestA}% - \GlobalLetLtxMacro\TestC\TestA - \CheckA - \endgroup - \TestDef - {TestC}{\@protected@testopt \TestC \\TestC {\relax default \empty }}% - \newcommand{\TestA}[1][\relax default \empty]{TestA #1}% - \TestEquals{\string\TestC}{\string\TestA}% -\end{qstest} - -\begin{qstest}{robustdefault}{robustdefault} - \begingroup - \DeclareRobustCommand{\TestA}[1][\default]{TestA}% - \SaveA - \LetLtxMacro\TestB\TestA - \TestDef{TestB}{\protect \TestB }% - \TestDef{TestB }{\@protected@testopt \TestB \\TestB {\default }}% - \CheckA - \GlobalLetLtxMacro\TestC\TestA - \CheckA - \endgroup - \TestDef{TestC}{\protect \TestC }% - \TestDef{TestC }{\@protected@testopt \TestC \\TestC {\default }}% -\end{qstest} - -\begin{qstest}{plain}{plain} - \LetLtxMacro\NewRelax\relax - \Expect*{\meaning\relax}*{\string\relax}% - \Expect*{\meaning\NewRelax}*{\string\relax}% - \LetLtxMacro\NewHbox\hbox - \Expect*{\meaning\hbox}*{\string\hbox}% - \Expect*{\meaning\NewHbox}*{\string\hbox}% - \LetLtxMacro\NewEmpty\empty - \Expect*{\meaning\empty}{macro:->}% - \Expect*{\meaning\NewEmpty}{macro:->}% - \def\TestA{\iffalse}% - \LetLtxMacro\TestB\TestA - \TestDef{TestB}{\iffalse }% - \TestEquals{TestA}{TestB}% -\end{qstest} -% \end{macrocode} -% -% \begin{macrocode} -\usepackage{etoolbox}[2008/06/22] - -\begin{qstest}{oldnewrobustcmd}{oldnewrobustcmd} - \begingroup - \protected\edef\TestA{% - \noexpand\@protected@testopt - \noexpand\TestA - \expandafter\noexpand\csname\string\TestA\endcsname - {\noexpand\default}% - }% - \expandafter\protected\expandafter - \def\csname\string\TestA\endcsname{TestA}% - \SaveA - \LetLtxMacro\TestB\TestA - \TestDef{TestB}{\@protected@testopt \TestB \\TestB {\default }}% - \protected\edef\TestC{% - \noexpand\@protected@testopt - \noexpand\TestB - \expandafter\noexpand\csname\string\TestB\endcsname - {\noexpand\default}% - }% - \TestEquals{TestB}{TestC}% - \CheckA - \GlobalLetLtxMacro\TestD\TestA - \CheckA - \endgroup - \TestDef{TestD}{\@protected@testopt \TestD \\TestD {\default }}% - \protected\edef\TestC{% - \noexpand\@protected@testopt - \noexpand\TestD - \expandafter\noexpand\csname\string\TestD\endcsname - {\noexpand\default}% - }% - \TestEquals{TestD}{TestC}% -\end{qstest} - -\begin{qstest}{newrobustcmd}{newrobustcmd} - \begingroup - \newrobustcmd{\TestA}[1][\default]{TestA}% - \SaveA - \LetLtxMacro\TestB\TestA - \TestDef{TestB}{\@testopt \\TestB {\default }}% - \protected\edef\TestC{% - \noexpand\@testopt - \expandafter\noexpand\csname\string\TestB\endcsname - {\noexpand\default}% - }% - \TestEquals{TestB}{TestC}% - \CheckA - \GlobalLetLtxMacro\TestD\TestA - \CheckA - \endgroup - \TestDef{TestD}{\@testopt \\TestD {\default }}% - \protected\edef\TestC{% - \noexpand\@testopt - \expandafter\noexpand\csname\string\TestD\endcsname - {\noexpand\default}% - }% - \TestEquals{TestD}{TestC}% -\end{qstest} - -\begin{qstest}{robustifyopt}{robustifyopt} - \newcommand{\TestA}[2][\default]{}% - \TestDef{TestA}{\@protected@testopt \TestA \\TestA {\default }}% - \robustify\TestA - \TestDef{TestA}{\@protected@testopt \TestA \\TestA {\default }}% - \protected\edef\TestC{% - \noexpand\@protected@testopt - \noexpand\TestA - \expandafter\noexpand\csname\string\TestA\endcsname - {\noexpand\default}% - }% - \TestEquals{TestA}{TestC}% - \SaveA - \LetLtxMacro\TestB\TestA - \TestDef{TestB}{\@protected@testopt \TestB \\TestB {\default }}% - \protected\edef\TestC{% - \noexpand\@protected@testopt - \noexpand\TestB - \expandafter\noexpand\csname\string\TestB\endcsname - {\noexpand\default}% - }% - \TestEquals{TestB}{TestC}% - \CheckA -\end{qstest} - -\begin{qstest}{robustifydeclare}{robustifydeclare} - \DeclareRobustCommand\TestA{\iffalse}% - \robustify\TestA - \SaveA - \LetLtxMacro\TestB\TestA - \TestDef{TestB}{\iffalse }% - % before etoolbox 2008/06/22: \protected\long\def - % since etoolbox 2008/06/22: \protected\def - \protected\def\TestC{\iffalse}% - \TestEquals{TestB}{TestC}% - \CheckA -\end{qstest} - -\begin{qstest}{robustifydeclarelong}{robustifydeclarelong} - \DeclareRobustCommand\TestA[1]{\iffalse}% - \robustify\TestA - \SaveA - \LetLtxMacro\TestB\TestA - \TestDef{TestB}{\iffalse }% - % before etoolbox 2008/06/22: \protected\long\def - % since etoolbox 2008/06/22: \protected\def - \protected\long\def\TestC#1{\iffalse}% - \TestEquals{TestB}{TestC}% - \CheckA -\end{qstest} -% \end{macrocode} -% -% \begin{macrocode} -\csname @@end\endcsname -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \section{Installation} -% -% \subsection{Download} -% -% \paragraph{Package.} This package is available on -% CTAN\footnote{\CTANpkg{letltxmacro}}: -% \begin{description} -% \item[\CTAN{macros/latex/contrib/oberdiek/letltxmacro.dtx}] The source file. -% \item[\CTAN{macros/latex/contrib/oberdiek/letltxmacro.pdf}] Documentation. -% \end{description} -% -% -% \paragraph{Bundle.} All the packages of the bundle `oberdiek' -% are also available in a TDS compliant ZIP archive. There -% the packages are already unpacked and the documentation files -% are generated. The files and directories obey the TDS standard. -% \begin{description} -% \item[\CTANinstall{install/macros/latex/contrib/oberdiek.tds.zip}] -% \end{description} -% \emph{TDS} refers to the standard ``A Directory Structure -% for \TeX\ Files'' (\CTANpkg{tds}). Directories -% with \xfile{texmf} in their name are usually organized this way. -% -% \subsection{Bundle installation} -% -% \paragraph{Unpacking.} Unpack the \xfile{oberdiek.tds.zip} in the -% TDS tree (also known as \xfile{texmf} tree) of your choice. -% Example (linux): -% \begin{quote} -% |unzip oberdiek.tds.zip -d ~/texmf| -% \end{quote} -% -% \subsection{Package installation} -% -% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting -% \docstrip\ archive. The files are extracted by running the -% \xfile{.dtx} through \plainTeX: -% \begin{quote} -% \verb|tex letltxmacro.dtx| -% \end{quote} -% -% \paragraph{TDS.} Now the different files must be moved into -% the different directories in your installation TDS tree -% (also known as \xfile{texmf} tree): -% \begin{quote} -% \def\t{^^A -% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} -% letltxmacro.sty & tex/latex/oberdiek/letltxmacro.sty\\ -% letltxmacro.pdf & doc/latex/oberdiek/letltxmacro.pdf\\ -% letltxmacro-showcases.tex & doc/latex/oberdiek/letltxmacro-showcases.tex\\ -% test/letltxmacro-test1.tex & doc/latex/oberdiek/test/letltxmacro-test1.tex\\ -% test/letltxmacro-test2.tex & doc/latex/oberdiek/test/letltxmacro-test2.tex\\ -% letltxmacro.dtx & source/latex/oberdiek/letltxmacro.dtx\\ -% \end{tabular}^^A -% }^^A -% \sbox0{\t}^^A -% \ifdim\wd0>\linewidth -% \begingroup -% \advance\linewidth by\leftmargin -% \advance\linewidth by\rightmargin -% \edef\x{\endgroup -% \def\noexpand\lw{\the\linewidth}^^A -% }\x -% \def\lwbox{^^A -% \leavevmode -% \hbox to \linewidth{^^A -% \kern-\leftmargin\relax -% \hss -% \usebox0 -% \hss -% \kern-\rightmargin\relax -% }^^A -% }^^A -% \ifdim\wd0>\lw -% \sbox0{\small\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\footnotesize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\scriptsize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\tiny\t}^^A -% \ifdim\wd0>\linewidth -% \lwbox -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \end{quote} -% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's -% TDS installing feature, then some files can already be in the right -% place, see the documentation of \docstrip. -% -% \subsection{Refresh file name databases} -% -% If your \TeX~distribution -% (\TeX\,Live, \mikTeX, \dots) relies on file name databases, you must refresh -% these. For example, \TeX\,Live\ users run \verb|texhash| or -% \verb|mktexlsr|. -% -% \subsection{Some details for the interested} -% -% \paragraph{Unpacking with \LaTeX.} -% The \xfile{.dtx} chooses its action depending on the format: -% \begin{description} -% \item[\plainTeX:] Run \docstrip\ and extract the files. -% \item[\LaTeX:] Generate the documentation. -% \end{description} -% If you insist on using \LaTeX\ for \docstrip\ (really, -% \docstrip\ does not need \LaTeX), then inform the autodetect routine -% about your intention: -% \begin{quote} -% \verb|latex \let\install=y\input{letltxmacro.dtx}| -% \end{quote} -% Do not forget to quote the argument according to the demands -% of your shell. -% -% \paragraph{Generating the documentation.} -% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate -% the documentation. The process can be configured by the -% configuration file \xfile{ltxdoc.cfg}. For instance, put this -% line into this file, if you want to have A4 as paper format: -% \begin{quote} -% \verb|\PassOptionsToClass{a4paper}{article}| -% \end{quote} -% An example follows how to generate the -% documentation with pdf\LaTeX: -% \begin{quote} -%\begin{verbatim} -%pdflatex letltxmacro.dtx -%makeindex -s gind.ist letltxmacro.idx -%pdflatex letltxmacro.dtx -%makeindex -s gind.ist letltxmacro.idx -%pdflatex letltxmacro.dtx -%\end{verbatim} -% \end{quote} -% -% \begin{History} -% \begin{Version}{2008/06/09 v1.0} -% \item -% First version. -% \end{Version} -% \begin{Version}{2008/06/12 v1.1} -% \item -% Support for \xpackage{etoolbox}'s \cs{newrobustcmd} added. -% \end{Version} -% \begin{Version}{2008/06/13 v1.2} -% \item -% Support for \xpackage{etoolbox}'s \cs{robustify} added. -% \end{Version} -% \begin{Version}{2008/06/24 v1.3} -% \item -% Test file adapted for etoolbox 2008/06/22 v1.6. -% \end{Version} -% \begin{Version}{2010/09/02 v1.4} -% \item -% \cs{GlobalLetLtxMacro} added. -% \end{Version} -% \begin{Version}{2016/05/16 v1.5} -% \item -% Documentation updates. -% \end{Version} -% \end{History} -% -% \PrintIndex -% -% \Finale -\endinput diff --git a/macros/latex/contrib/oberdiek/letltxmacro.pdf b/macros/latex/contrib/oberdiek/letltxmacro.pdf deleted file mode 100644 index bfdb7d1dce..0000000000 Binary files a/macros/latex/contrib/oberdiek/letltxmacro.pdf and /dev/null differ diff --git a/macros/latex/contrib/oberdiek/listingsutf8.dtx b/macros/latex/contrib/oberdiek/listingsutf8.dtx index 7a6ed74f37..1cf8b78795 100644 --- a/macros/latex/contrib/oberdiek/listingsutf8.dtx +++ b/macros/latex/contrib/oberdiek/listingsutf8.dtx @@ -65,11 +65,6 @@ % Installation: % TDS:tex/latex/oberdiek/listingsutf8.sty % TDS:doc/latex/oberdiek/listingsutf8.pdf -% TDS:doc/latex/oberdiek/test/listingsutf8-test1.tex -% TDS:doc/latex/oberdiek/test/listingsutf8-test2.tex -% TDS:doc/latex/oberdiek/test/listingsutf8-test3.tex -% TDS:doc/latex/oberdiek/test/listingsutf8-test4.tex -% TDS:doc/latex/oberdiek/test/listingsutf8-test5.tex % TDS:source/latex/oberdiek/listingsutf8.dtx % %<*ignore> @@ -143,10 +138,6 @@ and the derived files % \file{listingsutf8-test3.tex}{\from{listingsutf8.dtx}{test3,utf8x}}% % \file{listingsutf8-test4.tex}{\from{listingsutf8.dtx}{test4,utf8,noetex}}% % \file{listingsutf8-test5.tex}{\from{listingsutf8.dtx}{test5,utf8x,noetex}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{listingsutf8.xml}{\from{listingsutf8.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -183,21 +174,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{listingsutf8.drv} % @@ -493,105 +469,7 @@ and the derived files \lstU@AtEnd% % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\NeedsTeXFormat{LaTeX2e} -\documentclass{minimal} -\makeatletter -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@\@ne -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@\@ne - \repeat -} -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{127}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\{=1 % - \catcode`\}=2 % - \catcode`\#=6 % - \catcode`\[=12 % - \catcode`\]=12 % - \catcode`\%=14 % - \catcode`\ =10 % - \catcode13=5 % - \RequirePackage{listingsutf8}[2016/05/16]\relax - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Test example for latin1} -% -% \begin{macrocode} -%<*test2> -% \end{macrocode} -% \begin{macrocode} -\NeedsTeXFormat{LaTeX2e} -\documentclass{minimal} -\usepackage{filecontents} -\def\do#1{% - \ifx#1\^% - \else - \noexpand\do\noexpand#1% - \fi -} -\expandafter\let\expandafter\dospecials\expandafter\empty -\expandafter\edef\expandafter\dospecials\expandafter{\dospecials} -\begin{filecontents*}{ExampleUTF8.java} -public class ExampleUTF8 { - public static String testString = - "Umlauts: " + - "^^c3^^84^^c3^^96^^c3^^9c^^c3^^a4^^c3^^b6^^c3^^bc^^c3^^9f"; - public static void main(String[] args) { - System.out.println(testString); - } -} -\end{filecontents*} -\usepackage{listingsutf8}[2016/05/16] -\def\Text{% - Umlauts: % - ^^c3^^84^^c3^^96^^c3^^9c^^c3^^a4^^c3^^b6^^c3^^bc^^c3^^9f% -} -\begin{document} -\lstinputlisting[% - language=Java,% - inputencoding=utf8/latin1,% -]{ExampleUTF8.java} -\end{document} -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -640,11 +518,6 @@ public class ExampleUTF8 { % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % listingsutf8.sty & tex/latex/oberdiek/listingsutf8.sty\\ % listingsutf8.pdf & doc/latex/oberdiek/listingsutf8.pdf\\ -% test/listingsutf8-test1.tex & doc/latex/oberdiek/test/listingsutf8-test1.tex\\ -% test/listingsutf8-test2.tex & doc/latex/oberdiek/test/listingsutf8-test2.tex\\ -% test/listingsutf8-test3.tex & doc/latex/oberdiek/test/listingsutf8-test3.tex\\ -% test/listingsutf8-test4.tex & doc/latex/oberdiek/test/listingsutf8-test4.tex\\ -% test/listingsutf8-test5.tex & doc/latex/oberdiek/test/listingsutf8-test5.tex\\ % listingsutf8.dtx & source/latex/oberdiek/listingsutf8.dtx\\ % \end{tabular}^^A % }^^A @@ -760,7 +633,7 @@ public class ExampleUTF8 { % \bibitem{inputenc} % Alan Jeffrey, Frank Mittelbach, % \textit{inputenc.sty}, 2006/05/05 v1.1b. -% \CTAN{macros/latex/base/inputenc.dtx} +% \CTANpkg{iputenc} % % \bibitem{listings} % Carsten Heinz, Brooks Moses: @@ -772,7 +645,7 @@ public class ExampleUTF8 { % Heiko Oberdiek: % \textit{The \xpackage{stringenc} package}; % 2007/10/22;\\ -% \CTAN{macros/latex/contrib/oberdiek/stringenc.pdf}. +% \CTANpkg{stringenc}. % % \end{thebibliography} % diff --git a/macros/latex/contrib/oberdiek/listingsutf8.pdf b/macros/latex/contrib/oberdiek/listingsutf8.pdf index ff64d3ce1e..3644e9b320 100644 Binary files a/macros/latex/contrib/oberdiek/listingsutf8.pdf and b/macros/latex/contrib/oberdiek/listingsutf8.pdf differ diff --git a/macros/latex/contrib/oberdiek/ltxcmds.dtx b/macros/latex/contrib/oberdiek/ltxcmds.dtx index 974a994380..7de6b53dfe 100644 --- a/macros/latex/contrib/oberdiek/ltxcmds.dtx +++ b/macros/latex/contrib/oberdiek/ltxcmds.dtx @@ -69,13 +69,6 @@ % Installation: % TDS:tex/generic/oberdiek/ltxcmds.sty % TDS:doc/latex/oberdiek/ltxcmds.pdf -% TDS:doc/latex/oberdiek/test/ltxcmds-test1.tex -% TDS:doc/latex/oberdiek/test/ltxcmds-test-gobble.tex -% TDS:doc/latex/oberdiek/test/ltxcmds-test-ifempty.tex -% TDS:doc/latex/oberdiek/test/ltxcmds-test-zapspace.tex -% TDS:doc/latex/oberdiek/test/ltxcmds-test-ifboxempty.tex -% TDS:doc/latex/oberdiek/test/ltxcmds-test-nextchar.tex -% TDS:doc/latex/oberdiek/test/ltxcmds-test-carcdr.tex % TDS:source/latex/oberdiek/ltxcmds.dtx % %<*ignore> @@ -155,10 +148,6 @@ and the derived files % \file{ltxcmds-test-ifboxempty.tex}{\from{ltxcmds.dtx}{test-ifboxempty}}% % \file{ltxcmds-test-nextchar.tex}{\from{ltxcmds.dtx}{test-nextchar}}% % \file{ltxcmds-test-carcdr.tex}{\from{ltxcmds.dtx}{test-carcdr}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{ltxcmds.xml}{\from{ltxcmds.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -198,21 +187,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{ltxcmds.drv} % @@ -2062,851 +2036,7 @@ $ \next \LTXcmds@AtEnd% % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input ltxcmds.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Test \cs{ltx@GobbleNum}} -% -% \begin{macrocode} -%<*test-gobble> -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\expandafter\ifx\csname RequirePackage\endcsname\relax - \input ltxcmds.sty\relax -\else - \RequirePackage{ltxcmds}[2016/05/16]% -\fi -\catcode`\@=11 % -\def\msg#{\immediate\write16}% -\msg{[Test \string\ltx@GobbleNum]}% -\long\def\Test#1=#2\\{% - \edef\StrA{\ltx@GobbleNum#1}% - \expandafter\expandafter\expandafter\def - \expandafter\expandafter\expandafter\StrAA - \expandafter\expandafter\expandafter{\ltx@GobbleNum#1}% - \edef\StrB{#2}% - \ifx\StrA\StrB - \ifx\StrAA\StrB - \msg{* ok.}% - \else - \msg{StrAA: \StrAA}% - \msg{StrB: \StrB}% - \errhelp{Test: #1=#2}% - \errmessage{Test (two expansions) failed}% - \fi - \else - \msg{StrA: \StrA}% - \msg{StrB: \StrB}% - \errhelp{Test: #1=#2}% - \errmessage{Test (edef) failed!}% - \fi -} -\Test0abc=abc\\ -\Test1abc=bc\\ -\Test2abc=c\\ -\Test3abcd=d\\ -\Test4abcde=e\\ -\Test5abcdef=f\\ -\Test6abcdefg=g\\ -\Test7abcdefgh=h\\ -\Test8abcdefghi=i\\ -\Test9abcdefghij=j\\ -\Test{10}0123456789X=X\\ -\Test{12}abcdefghijklm=m\\ -\Test{700}% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -X=X\\ -\Test{-1}abc=abc\\ -\Test2\par\par\relax=\relax\\ - -\begingroup - \count1=2 % - \Test{\count1}abc=c\\% -\endgroup - -\ltx@IfUndefined{numexpr}{% -}{% - \Test{1+1}abc=c\\% -} - -\msg{[Test \string\ltx@CdrNum]}% -\long\def\Test#1=#2\\{% - \edef\StrA{\ltx@CdrNum#1\@nil}% - \expandafter\expandafter\expandafter\def - \expandafter\expandafter\expandafter\StrAA - \expandafter\expandafter\expandafter{\ltx@CdrNum#1\@nil}% - \edef\StrB{#2}% - \ifx\StrA\StrB - \ifx\StrAA\StrB - \msg{* ok.}% - \else - \msg{StrAA: \meaning\StrAA}% - \msg{StrB: \meaning\StrB}% - \errhelp{Test: #1=#2}% - \errmessage{Test (two expansions) failed}% - \fi - \else - \msg{StrA: \StrA}% - \msg{StrB: \StrB}% - \errhelp{Test: #1=#2}% - \errmessage{Test (edef) failed!}% - \fi -} -\Test0abc=abc\\ -\Test1abc=bc\\ -\Test2abc=c\\ -\Test3abcd=d\\ -\Test4abcde=e\\ -\Test5abcdef=f\\ -\Test6abcdefg=g\\ -\Test7abcdefgh=h\\ -\Test8abcdefghi=i\\ -\Test9abcdefghij=j\\ -\Test{10}0123456789X=X\\ -\Test{12}abcdefghijklm=m\\ -\Test{700}% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -X=X\\ -\Test{-1}abc=abc\\ -\Test2\par\par\relax=\relax\\ - -\msg{[Test \string\ltx@CarNum]}% -\long\def\Test#1=#2\\{% - \edef\StrA{\ltx@CarNum#1\@nil}% - \expandafter\expandafter\expandafter\def - \expandafter\expandafter\expandafter\StrAA - \expandafter\expandafter\expandafter{\ltx@CarNum#1\@nil}% - \edef\StrB{#2}% - \ifx\StrA\StrB - \ifx\StrAA\StrB - \msg{* ok.}% - \else - \msg{StrAA: \meaning\StrAA}% - \msg{StrB: \meaning\StrB}% - \errhelp{Test: #1=#2}% - \errmessage{Test (two expansions) failed}% - \fi - \else - \msg{StrA: \StrA}% - \msg{StrB: \StrB}% - \errhelp{Test: #1=#2}% - \errmessage{Test (edef) failed!}% - \fi -} -\Test0abc=\\ -\Test1abc=a\\ -\Test2abc=ab\\ -\Test3abc=abc\\ -\Test3abcd=abc\\ -\Test4abcde=abcd\\ -\Test{10}0123456789X=0123456789\\ -\Test{12}abcdefghijklm=abcdefghijkl\\ -\Test{700}% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -X=% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -0123456789012345678901234567890123456789012345678901234567890123456789% -\\ -\Test{-1}abc=\\ -\Test2\par\par\relax=\par\par\\ -\csname @@end\endcsname\end -% -% \end{macrocode} -% -% \subsection{Test \cs{ltx@ifempty}} -% -% \begin{macrocode} -%<*test-ifempty> -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\errorcontextlines=1000 % -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname RequirePackage\endcsname\relax - \input ltxcmds.sty\relax -\else - \RequirePackage{ltxcmds}[2016/05/16]% -\fi -\def\msg#{\immediate\write16} -\def\TestY{\Y} -\def\TestN{\N} -\msg{* \string\ltx@ifempty} -\long\def\test#1{% - \begingroup - % Calculate expected test result via macro definition - \def\Stuff{#1}% - \ifx\Stuff\ltx@empty - \def\StuffEmpty{\Y}% - \else - \def\StuffEmpty{\N}% - \fi - % Test \ltx@ifempty - \expandafter\expandafter\expandafter\def - \expandafter\expandafter\expandafter\TestEmpty - \expandafter\expandafter\expandafter{% - \ltx@ifempty{#1}{\Y}{\N}% - }% - \ifx\StuffEmpty\TestEmpty - \msg{* Test OK}% - \else - \ltx@IfUndefined{detokenize}{}{% - \msg{Stuff: [\detokenize{\Stuff}]}% - }% - \errmessage{Test failed!}% - \fi - \endgroup -} -\test{} -\test{a} -\test{abc} -\test{\par} -\test{ } -\test{\if} -\test{{\if}} -\test{\else} -\test{{\else}} -\test{\fi} -\test{{}\fi} -\test{\or\ifcase} -\test{{}} -\test{{a}} -\test{{}abc} -\test{{\par}} -\test{{}\par} -% \end{macrocode} -% \begin{macrocode} -\def\SpaceTwo#1{% - \def\SpaceTwo{#1#1}% -}\SpaceTwo{ } -\msg{* \string\ltx@ifblank} -\long\def\test#1{% - \begingroup - % Calculate expected test result via macro definition - \def\Stuff{#1}% - \ifx\Stuff\ltx@empty - \def\StuffEmpty{\Y}% - \else - \ifx\Stuff\ltx@space - \def\StuffEmpty{\Y}% - \else - \ifx\Stuff\SpaceTwo - \def\StuffEmpty{\Y}% - \else - \def\StuffEmpty{\N}% - \fi - \fi - \fi - % Test \ltx@ifblank - \expandafter\expandafter\expandafter\def - \expandafter\expandafter\expandafter\TestEmpty - \expandafter\expandafter\expandafter{% - \ltx@ifblank{#1}{\Y}{\N}% - }% - \ifx\StuffEmpty\TestEmpty - \msg{* Test OK}% - \else - \ltx@IfUndefined{detokenize}{}{% - \msg{Stuff: [\detokenize{\Stuff}]}% - }% - \errmessage{Test failed!}% - \fi - \endgroup -} -\test{} -\test{a} -\test{\if} -\test{\else} -\test{\fi} -\test{ \fi} -\test{\par} -\test{ \par} -\test{{}} -\test{ {}} -\def\x#1{% - \test{#1#1}% - \test{#1#1{}}% - \test{#1#1\par}% - \test{#1#1\else}% -}\x{ } -\csname @@end\endcsname\end -% -% \end{macrocode} -% -% \subsection{Test \cs{ltx@zap@space}} -% -% \begin{macrocode} -%<*test-zapspace> -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\errorcontextlines=1000 % -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname RequirePackage\endcsname\relax - \input ltxcmds.sty\relax -\else - \RequirePackage{ltxcmds}[2016/05/16]% -\fi -\def\msg#{\immediate\write16} -\def\space{ } -\def\empty{} -\msg{* \string\ltx@zapspace} -\long\def\test#1#2{% - \begingroup - \def\TestInput{#1}% - \def\TestExpected{#2}% - % Test \ltx@zapspace - \expandafter\expandafter\expandafter\def - \expandafter\expandafter\expandafter\TestResult - \expandafter\expandafter\expandafter{% - \ltx@zapspace{#1}% - }% - \ifx\TestResult\TestExpected - \msg{* Test OK}% - \else - \ltx@onelevel@sanitize\TestInput - \ltx@onelevel@sanitize\TestExpected - \ltx@onelevel@sanitize\TestResult - \msg{* Input: \space\space\space[\TestInput]}% - \msg{ \space Result: \space\space[\TestResult]}% - \msg{ \space Expected: [\TestExpected]}% - \errmessage{Test failed!}% - \fi - \endgroup -} -\long\def\etest#1#2{% - \begingroup - \edef\x{\endgroup - \noexpand\test{#1}{#2}% - }% - \x -} -\catcode`\~=13 % -\let~\noexpand -% \end{macrocode} -% \begin{macrocode} -\test{}{} -\test{{}}{{}} -\test{ {}}{{}} -\test{{ }}{{ }} -\test{{} }{{}} -\test{ {} }{{}} -\test{ { } }{{ }} -\test{a {b} c}{a{b}c} -\test{a bb ccc}{abbccc} -\test{{a} {bb} {ccc}}{{a}{bb}{ccc}} -\test{\par}{\par} -\test{\if}{\if} -\test{\space}{\space} -\etest{\par\space\par}{\par\par} -\etest{~\empty\space~\empty}{~\empty~\empty} -\etest{~\fi\space~\else\space}{~\fi~\else} -% \end{macrocode} -% \begin{macrocode} -\csname @@end\endcsname\end -% -% \end{macrocode} -% -% \subsection{Test \cs{ltx@IfBoxEmpty}} -% -% \begin{macrocode} -%<*test-ifboxempty> -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname RequirePackage\endcsname\relax - \input ltxcmds.sty\relax -\else - \RequirePackage{ltxcmds}[2016/05/16]% -\fi -\def\msg#{\immediate\write16} - % make box 0 void -\begingroup - \setbox0=\box0 % -\endgroup -\ifvoid0 % -\else - \errmessage{Voiding box 0 failed}% -\fi -\setbox2=\box0 % -\def\test#1#2{% - \@test{#1}{#2}% - \@@test{#1}{#2}% - \chardef\x=#1% - \@test\x{#2}% - \@@test\x{#2}% -} -\def\@test#1#2{% - \begingroup - \setbox9=\hbox{% - \def\TestExpected{#2}% - \ltx@IfBoxEmpty{#1}{% - \def\TestResult{Y}% - }{% - \def\TestResult{N}% - }% - \ifx\TestExpected\TestResult - \msg{* Test passed.}% - \else - \errmessage{Test failed!}% - \fi - }% - \ifdim\wd9=0pt % - \else - \errmessage{Unwanted space?}% - \fi - \endgroup -} -\def\@@test#1#2{% - \begingroup - \setbox9=\hbox{% - \def\TestExpected{#2}% - \ifvoid#1\def\TestExpected{Y}\fi - \ltx@IfBoxVoidOrEmpty{#1}{% - \def\TestResult{Y}% - }{% - \def\TestResult{N}% - }% - \ifx\TestExpected\TestResult - \msg{* Test passed.}% - \else - \errmessage{Test failed!}% - \fi - }% - \ifdim\wd9=0pt % - \else - \errmessage{Unwanted space?}% - \fi - \endgroup -} -\test0N -\test2N -\setbox0=\hbox{} -\test0Y -\setbox2=\hbox{} -\test2Y -\setbox0=\vbox{} -\test0Y -\setbox2=\vbox{} -\test0Y -\setbox0=\hbox{ }% -\test0N -\setbox2=\hbox{ }% -\test2N -\setbox0=\hbox{\penalty1}% -\test0N -\setbox2=\hbox{\penalty1}% -\test2N -\csname @@end\endcsname\end -% -% \end{macrocode} -% -% \subsection{Test for next character detection} -% -% \begin{macrocode} -%<*test-nextchar> -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname RequirePackage\endcsname\relax - \input ltxcmds.sty\relax - \input eolgrab.sty\relax -\else - \RequirePackage{ltxcmds}[2016/05/16]% - \RequirePackage{eolgrab}[2011/01/12]% -\fi -\def\msg#{\immediate\write16} -\begingroup - \def\x#1{% - \endgroup - \let\TestSpaceToken= #1\relax - }% -\x{ } -\def\TestSpace{ } -\begingroup - \lccode32=65 % space -> A -\lowercase{% - \endgroup - \def\TestSpaceA{ }% -} -\def\TestCatch{% - \eolgrab\@TestCatch -} -\def\@TestCatch#1{% - \begingroup - \def\x{#1}% - \ifx\x\ltx@empty - \else - \ltx@onelevel@sanitize\x - \errmessage{Unparsed stuff on line [\x]}% - \fi - \endgroup -} -\def\TestCmdM#1{% - \TestCheckType{M}% - \TestCatch -} -\def\TestCmdOM[#1]#2{% - \TestCheckType{O}% - \TestCatch -} -\def\TestCheckType#1{% - \if\TestCmdType#1\relax - \else - \errmessage{Wrong type #1, expected: \TestCmdType}% - \fi -} -\def\TestCmd#1{% - \def\TestCmdType{#1}% - \ltx@ifnextchar[\TestCmdOM\TestCmdM -} -\def\TestCmdExp#1{% - \expandafter\TestCmd\expandafter#1% -} -\outer\def\TestOuter{} -\TestCmd O[o]{m} -\TestCmd M{m} -\TestCmd O [o]{m} -\TestCmd M {m} -\def\x#1{\def\x{#1#1}}\x{ } -\TestCmdExp O\x[o]{m} -\TestCmdExp M\x{m} -\def\x#1{\def\x{#1#1#1#1}}\x{ } -\TestCmdExp O\x[o]{m} -\TestCmdExp M\x{m} -\def\x{\TestSpaceToken} -\TestCmdExp O\x[o]{m} -\TestCmdExp M\x{m} -\def\x{\TestSpaceToken\TestSpaceToken\TestSpaceToken} -\TestCmdExp O\x[o]{m} -\TestCmdExp M\x{m} -\TestCmd M\TestSpace -\TestOuter -\TestCmd M \TestSpace -\TestOuter -\TestCmd M\iftrue -\TestOuter -\TestCmd M\iffalse -\TestOuter -\TestCmd M\else -\TestOuter -\TestCmd M\fi -\TestOuter -\TestCmd M \iftrue -\TestOuter -\TestCmd M \iffalse -\TestOuter -\TestCmd M \else -\TestOuter -% -\def\TestCmd#1{% - \def\TestCmdType{#1}% - \ltx@ifnextchar@nospace[\TestCmdOM\TestCmdM -} -\TestCmd O[o]{m} -\TestCmd M{m} -\TestCmd M [ -\TestOuter -\TestCmd M {m} -\TestCmd M\iftrue -\TestOuter -\TestCmd M\iffalse -\TestOuter -\TestCmd M\else -\TestCmd M\fi -\TestOuter -\TestOuter -% -\def\TestCmd#1{% - \def\TestCmdType{#1}% - \ltx@ifnextchar(\TestCmdPM\TestCmdM -} -\def\TestCmdPM(#1)#2{% - \TestCheckType{P}% - \TestCatch -} -\TestCmd P(p){m} -\TestCmd M{m} -\TestCmd P (p){m} -\TestCmd M {m} -% -\def\TestCmd#1{% - \def\TestCmdType{#1}% - \ltx@ifnextchar{ }\TestCmdSM\TestCmdM -} -\def\TestCmdSM#1#{% - \TestCheckType{S}% - \begingroup - \let\x= #1\relax - \ifx\x\TestSpaceToken - \else - \errmessage{unexpected space token: \meaning#1}% - \fi - \endgroup - \def\TestCmdType{M}% - \TestCmdM -} -\TestCmd S {m} -\TestCmd M{m} -\def\x#1{\def\x{#1#1}}\x{ } -\TestCmdExp S\x{m} -% -\def\TestCmd#1{% - \def\TestCmdType{#1}% - \ltx@ifnextchar\iffalse\TestCmdIM\TestCmdM -} -\def\TestCmdIM\iffalse#1{% - \TestCheckType{I}% - \TestCatch -} -\TestCmd M\iftrue -\TestOuter -\TestCmd M \iftrue -\TestCmd I\iffalse\iffalse -\TestCmd I \iffalse\iffalse -\TestOuter -% -\def\TestCmd#1{% - \def\TestCmdType{#1}% - \ltx@ifnextchar@nospace\iffalse\TestCmdIM\TestCmdM -} -\TestCmd M\iftrue -\TestOuter -\TestCmd I\iffalse\iffalse -\TestOuter -\csname @@end\endcsname\end -% -% \end{macrocode} -% -% \subsection{Test for list helpers} -% -% \begin{macrocode} -%<*test-carcdr> -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname RequirePackage\endcsname\relax - \input ltxcmds.sty\relax - \input eolgrab.sty\relax -\else - \RequirePackage{ltxcmds}[2016/05/16]% - \RequirePackage{eolgrab}[2011/01/12]% -\fi -\def\msg#{\immediate\write16} -\def\space{ } -\long\def\Test#1#2#3{% - \begingroup - \def\TestExpected{#3}% - \expandafter\expandafter\expandafter\def - \expandafter\expandafter\expandafter\TestResult - \expandafter\expandafter\expandafter{% - #1#2\@nil - }% - \ifx\TestResult\TestExpected - \else - \msg{\string\TestExpected: [\meaning\TestExpected]}% - \msg{\string\TestResult: \space\space[\meaning\TestResult]}% - \errmessage{Test failed!}% - \fi - \endgroup -} -\Test\ltx@carzero{abc}{} -\Test\ltx@carzero{}{} -\Test\ltx@carzero{\par\par}{} -\Test\ltx@cdrzero{}{} -\Test\ltx@cdrzero{abc}{abc} -\Test\ltx@cdrzero{ \par}{ \par} -\Test\ltx@cdrzero{\@empty}{\@empty} -\Test\ltx@cdrzero{{}}{{}} -\Test\ltx@car{abc}{a} -\Test\ltx@car{\par}{\par} -\Test\ltx@cdr{abc}{bc} -\Test\ltx@cdr{a \par}{ \par} -\Test\ltx@cdr{a\@empty}{\@empty} -\Test\ltx@cartwo{abc}{ab} -\Test\ltx@cartwo{\par\@empty}{\par\@empty} -\Test\ltx@carsecond{abc}{b} -\Test\ltx@carsecond{\@empty b\@empty}{b} -\Test\ltx@carsecond{\par\par\par}{\par} -\Test\ltx@cdrtwo{abc}{c} -\Test\ltx@cdrtwo{ab \par}{ \par} -\Test\ltx@cdrtwo{ab\@empty}{\@empty} -\Test\ltx@cdrtwo{ab{}}{{}} -\Test\ltx@cdrthree{abcdefg}{defg} -\Test\ltx@cdrfour{abcdefg}{efg} -\Test{\ltx@CdrNum{5}}{abcdefg}{fg} -\Test{\ltx@CdrNum{0}}{\par}{\par} -\Test{\ltx@CdrNum{0}}{\@empty}{\@empty} -\Test{\ltx@CdrNum{0}}{{}}{{}} -\Test{\ltx@CdrNum{0}}{ }{ } -\Test{\ltx@CdrNum{2}}{abcd}{cd} -\Test{\ltx@CdrNum{2}}{\vbox\par\hbox\par}{\hbox\par} -\Test{\ltx@carthree}{abcdefg}{abc} -\Test{\ltx@carfour}{abcdefg}{abcd} -\Test{\ltx@CarNum{5}}{abcdefg}{abcde} -\Test{\ltx@CarNum{2}}{\@empty\par}{\@empty\par} -\Test\ltx@carthird{abcdefg}{c} -\Test\ltx@carfourth{abcdefg}{d} -\Test{\ltx@CarNumth{5}}{abcdefg}{e} -\Test{\ltx@CarNumth{2}}{\@empty\@empty\@empty}{\@empty} -\Test{\ltx@CarNumth{2}}{\par\par\par}{\par} -\Test{\ltx@CarNumth{2}}{ab}{b} -\csname @@end\endcsname\end -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -2955,13 +2085,6 @@ X=% % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % ltxcmds.sty & tex/generic/oberdiek/ltxcmds.sty\\ % ltxcmds.pdf & doc/latex/oberdiek/ltxcmds.pdf\\ -% test/ltxcmds-test1.tex & doc/latex/oberdiek/test/ltxcmds-test1.tex\\ -% test/ltxcmds-test-gobble.tex & doc/latex/oberdiek/test/ltxcmds-test-gobble.tex\\ -% test/ltxcmds-test-ifempty.tex & doc/latex/oberdiek/test/ltxcmds-test-ifempty.tex\\ -% test/ltxcmds-test-zapspace.tex & doc/latex/oberdiek/test/ltxcmds-test-zapspace.tex\\ -% test/ltxcmds-test-ifboxempty.tex & doc/latex/oberdiek/test/ltxcmds-test-ifboxempty.tex\\ -% test/ltxcmds-test-nextchar.tex & doc/latex/oberdiek/test/ltxcmds-test-nextchar.tex\\ -% test/ltxcmds-test-carcdr.tex & doc/latex/oberdiek/test/ltxcmds-test-carcdr.tex\\ % ltxcmds.dtx & source/latex/oberdiek/ltxcmds.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/ltxcmds.pdf b/macros/latex/contrib/oberdiek/ltxcmds.pdf index 56d0939d06..5ad2de5379 100644 Binary files a/macros/latex/contrib/oberdiek/ltxcmds.pdf and b/macros/latex/contrib/oberdiek/ltxcmds.pdf differ diff --git a/macros/latex/contrib/oberdiek/mleftright.dtx b/macros/latex/contrib/oberdiek/mleftright.dtx deleted file mode 100644 index 5d7f837cae..0000000000 --- a/macros/latex/contrib/oberdiek/mleftright.dtx +++ /dev/null @@ -1,943 +0,0 @@ -% \iffalse meta-comment -% -% File: mleftright.dtx -% Version: 2016/05/16 v1.1 -% Info: Math left/right delim. as open/close -% -% Copyright (C) -% 2010 Heiko Oberdiek -% 2016-2019 Oberdiek Package Support Group -% https://github.com/ho-tex/oberdiek/issues -% -% This work may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either -% version 1.3c of this license or (at your option) any later -% version. This version of this license is in -% https://www.latex-project.org/lppl/lppl-1-3c.txt -% and the latest version of this license is in -% https://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 Maintainers of this work are -% Heiko Oberdiek and the Oberdiek Package Support Group -% https://github.com/ho-tex/oberdiek/issues -% -% The Base Interpreter refers to any `TeX-Format', -% because some files are installed in TDS:tex/generic//. -% -% This work consists of the main source file mleftright.dtx -% and the derived files -% mleftright.sty, mleftright.pdf, mleftright.ins, mleftright.drv, -% mleftright-test1.tex. -% -% Distribution: -% CTAN:macros/latex/contrib/oberdiek/mleftright.dtx -% CTAN:macros/latex/contrib/oberdiek/mleftright.pdf -% -% Unpacking: -% (a) If mleftright.ins is present: -% tex mleftright.ins -% (b) Without mleftright.ins: -% tex mleftright.dtx -% (c) If you insist on using LaTeX -% latex \let\install=y\input{mleftright.dtx} -% (quote the arguments according to the demands of your shell) -% -% Documentation: -% (a) If mleftright.drv is present: -% latex mleftright.drv -% (b) Without mleftright.drv: -% latex mleftright.dtx; ... -% The class ltxdoc loads the configuration file ltxdoc.cfg -% if available. Here you can specify further options, e.g. -% use A4 as paper format: -% \PassOptionsToClass{a4paper}{article} -% -% Programm calls to get the documentation (example): -% pdflatex mleftright.dtx -% makeindex -s gind.ist mleftright.idx -% pdflatex mleftright.dtx -% makeindex -s gind.ist mleftright.idx -% pdflatex mleftright.dtx -% -% Installation: -% TDS:tex/generic/oberdiek/mleftright.sty -% TDS:doc/latex/oberdiek/mleftright.pdf -% TDS:doc/latex/oberdiek/test/mleftright-test1.tex -% TDS:source/latex/oberdiek/mleftright.dtx -% -%<*ignore> -\begingroup - \catcode123=1 % - \catcode125=2 % - \def\x{LaTeX2e}% -\expandafter\endgroup -\ifcase 0\ifx\install y1\fi\expandafter - \ifx\csname processbatchFile\endcsname\relax\else1\fi - \ifx\fmtname\x\else 1\fi\relax -\else\csname fi\endcsname -% -%<*install> -\input docstrip.tex -\Msg{************************************************************************} -\Msg{* Installation} -\Msg{* Package: mleftright 2016/05/16 v1.1 Math left/right delim. as open/close (HO)} -\Msg{************************************************************************} - -\keepsilent -\askforoverwritefalse - -\let\MetaPrefix\relax -\preamble - -This is a generated file. - -Project: mleftright -Version: 2016/05/16 v1.1 - -Copyright (C) - 2010 Heiko Oberdiek - 2016-2019 Oberdiek Package Support Group - -This work may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either -version 1.3c of this license or (at your option) any later -version. This version of this license is in - https://www.latex-project.org/lppl/lppl-1-3c.txt -and the latest version of this license is in - https://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 Maintainers of this work are -Heiko Oberdiek and the Oberdiek Package Support Group -https://github.com/ho-tex/oberdiek/issues - - -The Base Interpreter refers to any `TeX-Format', -because some files are installed in TDS:tex/generic//. - -This work consists of the main source file mleftright.dtx -and the derived files - mleftright.sty, mleftright.pdf, mleftright.ins, mleftright.drv, - mleftright-test1.tex. - -\endpreamble -\let\MetaPrefix\DoubleperCent - -\generate{% - \file{mleftright.ins}{\from{mleftright.dtx}{install}}% - \file{mleftright.drv}{\from{mleftright.dtx}{driver}}% - \usedir{tex/generic/oberdiek}% - \file{mleftright.sty}{\from{mleftright.dtx}{package}}% -% \usedir{doc/latex/oberdiek/test}% -% \file{mleftright-test1.tex}{\from{mleftright.dtx}{test1}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{mleftright.xml}{\from{mleftright.dtx}{catalogue}}% -} - -\catcode32=13\relax% active space -\let =\space% -\Msg{************************************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move the following} -\Msg{* file into a directory searched by TeX:} -\Msg{*} -\Msg{* mleftright.sty} -\Msg{*} -\Msg{* To produce the documentation run the file `mleftright.drv'} -\Msg{* through LaTeX.} -\Msg{*} -\Msg{* Happy TeXing!} -\Msg{*} -\Msg{************************************************************************} - -\endbatchfile -% -%<*ignore> -\fi -% -%<*driver> -\NeedsTeXFormat{LaTeX2e} -\ProvidesFile{mleftright.drv}% - [2016/05/16 v1.1 Math left/right delim. as open/close (HO)]% -\documentclass{ltxdoc} -\usepackage{holtxdoc}[2011/11/22] -\usepackage{mleftright}[2016/05/16] -\begin{document} - \DocInput{mleftright.dtx}% -\end{document} -% -% \fi -% -% -% \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 \~} -% -% \GetFileInfo{mleftright.drv} -% -% \title{The \xpackage{mleftright} package} -% \date{2016/05/16 v1.1} -% \author{Heiko Oberdiek\thanks -% {Please report any issues at \url{https://github.com/ho-tex/oberdiek/issues}}} -% -% \maketitle -% -% \begin{abstract} -% \TeX\ sets subformulas by \cs{left} and \cs{right} as inner formulas -% with additional surrounding spaces in some situations. This package -% provides \cs{mleft} and \cs{mright} that call \cs{left} and \cs{right}, -% but the delimiters will act as normal \cs{mathopen} and \cs{mathclose} -% delimiters without the additional space of an inner formula. -% \end{abstract} -% -% \tableofcontents -% -% \section{Documentation} -% -% The package is a result of a thread in the newsgroup \textsf{comp.text.tex} -% with the subject \textit{spacing after \cs{right}\texttt{)} -% and before \cs{left}\texttt{)}} \cite{dave}. -% The problem: \cs{left} and \cs{right} adjust the size of the -% delimiters automatically. However, \TeX\ treats the whole expression -% as inner formula. In some circumstances \TeX\ adds extra space -% before or after an inner formula. -% Example: -% \begin{quote} -% \thinmuskip=1.5\thinmuskip -% \begin{tabular}{@{}l@{\quad$\Rightarrow$\quad}l@{}} -% |$\sin(x^2), x$| -% & $\sin(x^2), x$\\ -% |$\sin\left(x^2\right), x$| -% & $\sin\left(x^2\right), x$\\ -% ^^A \multicolumn{1}{@{}r@{\quad$\Rightarrow$\quad}}{^^A -% ^^A \itshape with exaggerated spacing^^A -% ^^A } -% ^^A & $\thinmuskip=4\thinmuskip -% ^^A \sin\left(x^2\right){,}\mskip.25\thinmuskip x$\\ -% |$\sin\mleft(x^2\mright), x$| -% & $\sin\mleft(x^2\mright), x$\\ -% \end{tabular}\\*[.5ex] -% (\cs{mleft} and \cs{mright} are provided by this package.) -% \end{quote} -% -% In the newsgroup Donald Arseneau answered with clever macros \cite{arseneau}: -% \begin{quote} -%\begin{verbatim} -%\newcommand\lft{\mathopen{}\left} -%\newcommand\rgt{\aftergroup\mathclose\aftergroup{\aftergroup}\right} -%\end{verbatim} -% \end{quote} -% However one problem remains, a following subscript or superscript -% is not applied to the right delimiter but the empty -% \cs{mathclose}. -% Thus Philipp Stephani provided an improvement \cite{stephani}: -%\begin{quote} -%\begin{verbatim} -%\mathopen{} \mathclose{\left\| A^2 \right\|}_2 -%\end{verbatim} -%\end{quote} -% Heiko Oberdiek converted this into macro form \cite{oberdiek}: -%\begin{quote} -%\begin{verbatim} -%\newcommand\lft{\mathopen{}\mathclose\bgroup\left} -%\newcommand\rgt{\aftergroup\egroup\right} -%\end{verbatim} -%\end{quote} -% -% The package uses longer macro names \cs{mleft} and \cs{mright} -% to avoid name clashes. Also it adds some checks for error conditions. -% -% \subsection{Use} -% -% \begin{declcs}{mleft}\meta{delimL} \dots\unkern\ \cs{mright}\meta{delimR} -% \end{declcs} -% Macros \cs{mleft} and \cs{mright} are used in the same way as -% \cs{left} and \cs{right}. Also \cs{middle} can be used inbetween if -% \eTeX\ is present. -% -% \begin{declcs}{mleftright} -% \end{declcs} -% Macro \cs{mleftright} redefines \cs{left} as \cs{mleft} and -% \cs{right} as \cs{mright}. The redefinition is local to the group. -% -% \begin{declcs}{mleftrightrestore} -% \end{declcs} -% Macro \cs{mleftright} restores \cs{left} and \cs{right} with -% the original meaning if they were previously redefined by -% \cs{mleftright} (also locally). -% -% -% \StopEventually{ -% } -% -% \section{Implementation} -% \begin{macrocode} -%<*package> -% \end{macrocode} -% Reload check, especially if the package is not used with \LaTeX. -% \begin{macrocode} -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode35=6 % # - \catcode39=12 % ' - \catcode44=12 % , - \catcode45=12 % - - \catcode46=12 % . - \catcode58=12 % : - \catcode64=11 % @ - \catcode123=1 % { - \catcode125=2 % } - \expandafter\let\expandafter\x\csname ver@mleftright.sty\endcsname - \ifx\x\relax % plain-TeX, first loading - \else - \def\empty{}% - \ifx\x\empty % LaTeX, first loading, - % variable is initialized, but \ProvidesPackage not yet seen - \else - \expandafter\ifx\csname PackageInfo\endcsname\relax - \def\x#1#2{% - \immediate\write-1{Package #1 Info: #2.}% - }% - \else - \def\x#1#2{\PackageInfo{#1}{#2, stopped}}% - \fi - \x{mleftright}{The package is already loaded}% - \aftergroup\endinput - \fi - \fi -\endgroup% -% \end{macrocode} -% Package identification: -% \begin{macrocode} -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode35=6 % # - \catcode39=12 % ' - \catcode40=12 % ( - \catcode41=12 % ) - \catcode44=12 % , - \catcode45=12 % - - \catcode46=12 % . - \catcode47=12 % / - \catcode58=12 % : - \catcode64=11 % @ - \catcode91=12 % [ - \catcode93=12 % ] - \catcode123=1 % { - \catcode125=2 % } - \expandafter\ifx\csname ProvidesPackage\endcsname\relax - \def\x#1#2#3[#4]{\endgroup - \immediate\write-1{Package: #3 #4}% - \xdef#1{#4}% - }% - \else - \def\x#1#2[#3]{\endgroup - #2[{#3}]% - \ifx#1\@undefined - \xdef#1{#3}% - \fi - \ifx#1\relax - \xdef#1{#3}% - \fi - }% - \fi -\expandafter\x\csname ver@mleftright.sty\endcsname -\ProvidesPackage{mleftright}% - [2016/05/16 v1.1 Math left/right delim. as open/close (HO)]% -% \end{macrocode} -% -% \begin{macrocode} -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode123=1 % { - \catcode125=2 % } - \catcode64=11 % @ - \def\x{\endgroup - \expandafter\edef\csname mleftright@AtEnd\endcsname{% - \endlinechar=\the\endlinechar\relax - \catcode13=\the\catcode13\relax - \catcode32=\the\catcode32\relax - \catcode35=\the\catcode35\relax - \catcode61=\the\catcode61\relax - \catcode64=\the\catcode64\relax - \catcode123=\the\catcode123\relax - \catcode125=\the\catcode125\relax - }% - }% -\x\catcode61\catcode48\catcode32=10\relax% -\catcode13=5 % ^^M -\endlinechar=13 % -\catcode35=6 % # -\catcode64=11 % @ -\catcode123=1 % { -\catcode125=2 % } -\def\TMP@EnsureCode#1#2{% - \edef\mleftright@AtEnd{% - \mleftright@AtEnd - \catcode#1=\the\catcode#1\relax - }% - \catcode#1=#2\relax -} -\TMP@EnsureCode{38}{4}% & -\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{60}{12}% < -\TMP@EnsureCode{91}{12}% [ -\TMP@EnsureCode{93}{12}% ] -\edef\mleftright@AtEnd{% - \mleftright@AtEnd - \escapechar\the\escapechar\relax - \noexpand\endinput -} -\escapechar=92 % -% \end{macrocode} -% -% \begin{macrocode} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname RequirePackage\endcsname\relax - \input infwarerr.sty\relax - \input ltxcmds.sty\relax -\else - \RequirePackage{infwarerr}[2010/04/08]% - \RequirePackage{ltxcmds}[2010/04/26]% -\fi -% \end{macrocode} -% -% The original commands \cs{left} and \cs{right} -% are saved and later used in \cs{mleft} and -% \cs{mright} in order to deal with: -% \begin{quote} -%\begin{verbatim} -%\let\left\mleft -%\let\right\mright -%\end{verbatim} -% \end{quote} -% \begin{macro}{\mleftright@OrgLeft} -% \begin{macrocode} -\let\mleftright@OrgLeft\left -% \end{macrocode} -% \end{macro} -% \begin{macro}{\mleftright@OrgRight} -% \begin{macrocode} -\let\mleftright@OrgRight\right -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\mleftright@Def} -% Macro \cs{mleftright@Def} defines a macro as robust macro -% if \eTeX\ or \LaTeX\ is available. -% \begin{macrocode} -\ltx@IfUndefined{protected}{% - \ltx@IfUndefined{DeclareRobustCommand}{% - \def\mleftright@Def{\def}% - }{% - \def\mleftright@Def{\DeclareRobustCommand*}% - }% -}{% - \def\mleftright@Def{\protected\def}% -} -\edef\mleftright@Def#1{% - \noexpand\ltx@IfUndefined{% - \noexpand\expandafter\noexpand\ltx@gobble\noexpand\string#1% - }{% - \expandafter\noexpand\mleftright@Def#1% - }{% - \noexpand\@PackageError{mleftright}{% - Command \noexpand\string#1 already defined% - }\noexpand\@ehd - \noexpand\ltx@gobble - }% -} -% \end{macrocode} -% \end{macro} -% -% In case of \eTeX\ the group status after the left symbol -% is saved and later checked at the beginning of \cs{mright}. -% \begin{macrocode} -\ltx@IfUndefined{currentgrouplevel}{% - \catcode38=14 % & = comment -}{% - \catcode38=9 % & = ignore -} -% \end{macrocode} -% -% \begin{macro}{\mleftright@GroupLevel} -% \begin{macrocode} -& \def\mleftright@GroupLevel{-1}% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\mleftright@WrongGroup} -% \begin{macrocode} -& \def\mleftright@WrongGroup#1(#2){% -& \ifnum\mleftright@GroupLevel<\ltx@zero -& \@PackageError{mleftright}{% -& Missing previous \string\mleft -& }\@ehc -& \else -& \@PackageError{mleftright}{% -& Unexpected group status for \string\mright% -& \ifnum\mleftright@GroupLevel=#1 % -& \else -& .\MessageBreak -& Group level is #1, % -& expected is \mleftright@GroupLevel -& \fi -& \ifnum16=#2 % -& \else -& .\MessageBreak -& Group type is #2 (% -& \ifcase#2 % -& bottom level% -& \expandafter\expandafter\expandafter\ltx@gobblefour -& \expandafter\ltx@gobbletwo -& \or simple% -& \or hbox% -& \or adjusted hbox% -& \or vbox% -& \or vtop% -& \or align% -& \or no align% -& \or output% -& \or math% -& \or disc% -& \or insert% -& \or vcenter% -& \or math choice% -& \or semi simple% -& \or math shift% -& \or math left% -& \else -& unknown% -& \fi -& \space group),\MessageBreak -& expected is 16 (math left group)% -& \fi -& }\@ehd -& \fi -& }% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\mleft} -% \begin{macrocode} -\mleftright@Def\mleft{% - \mathopen{}\mathclose\bgroup -& \edef\mleftright@GroupLevel{\the\numexpr\the\currentgrouplevel+1}% - \mleftright@OrgLeft -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\mright} -% \begin{macrocode} -\mleftright@Def\mright{% -& \ifnum\mleftright@GroupLevel=\currentgrouplevel -& \ifnum16=\currentgrouptype - \aftergroup\egroup -& \else -& \expandafter\mleftright@WrongGroup -& \the\expandafter\currentgrouplevel -& \expandafter(\the\currentgrouptype)% -& \fi -& \else -& \expandafter\mleftright@WrongGroup -& \the\expandafter\currentgrouplevel -& \expandafter(\the\currentgrouptype)% -& \fi - \mleftright@OrgRight -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\mleftright} -% \begin{macrocode} -\mleftright@Def\mleftright{% - \let\left\mleft - \let\right\mright -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\mleftrightrestore} -% \begin{macrocode} -\mleftright@Def\mleftrightrestore{% - \ifx\left\mleft - \let\left\mleftright@OrgLeft - \fi - \ifx\right\mright - \let\right\mleftright@OrgRight - \fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\mleftright@AtEnd% -% -% \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input mleftright.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \section{Installation} -% -% \subsection{Download} -% -% \paragraph{Package.} This package is available on -% CTAN\footnote{\CTANpkg{mleftright}}: -% \begin{description} -% \item[\CTAN{macros/latex/contrib/oberdiek/mleftright.dtx}] The source file. -% \item[\CTAN{macros/latex/contrib/oberdiek/mleftright.pdf}] Documentation. -% \end{description} -% -% -% \paragraph{Bundle.} All the packages of the bundle `oberdiek' -% are also available in a TDS compliant ZIP archive. There -% the packages are already unpacked and the documentation files -% are generated. The files and directories obey the TDS standard. -% \begin{description} -% \item[\CTANinstall{install/macros/latex/contrib/oberdiek.tds.zip}] -% \end{description} -% \emph{TDS} refers to the standard ``A Directory Structure -% for \TeX\ Files'' (\CTANpkg{tds}). Directories -% with \xfile{texmf} in their name are usually organized this way. -% -% \subsection{Bundle installation} -% -% \paragraph{Unpacking.} Unpack the \xfile{oberdiek.tds.zip} in the -% TDS tree (also known as \xfile{texmf} tree) of your choice. -% Example (linux): -% \begin{quote} -% |unzip oberdiek.tds.zip -d ~/texmf| -% \end{quote} -% -% \subsection{Package installation} -% -% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting -% \docstrip\ archive. The files are extracted by running the -% \xfile{.dtx} through \plainTeX: -% \begin{quote} -% \verb|tex mleftright.dtx| -% \end{quote} -% -% \paragraph{TDS.} Now the different files must be moved into -% the different directories in your installation TDS tree -% (also known as \xfile{texmf} tree): -% \begin{quote} -% \def\t{^^A -% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} -% mleftright.sty & tex/generic/oberdiek/mleftright.sty\\ -% mleftright.pdf & doc/latex/oberdiek/mleftright.pdf\\ -% test/mleftright-test1.tex & doc/latex/oberdiek/test/mleftright-test1.tex\\ -% mleftright.dtx & source/latex/oberdiek/mleftright.dtx\\ -% \end{tabular}^^A -% }^^A -% \sbox0{\t}^^A -% \ifdim\wd0>\linewidth -% \begingroup -% \advance\linewidth by\leftmargin -% \advance\linewidth by\rightmargin -% \edef\x{\endgroup -% \def\noexpand\lw{\the\linewidth}^^A -% }\x -% \def\lwbox{^^A -% \leavevmode -% \hbox to \linewidth{^^A -% \kern-\leftmargin\relax -% \hss -% \usebox0 -% \hss -% \kern-\rightmargin\relax -% }^^A -% }^^A -% \ifdim\wd0>\lw -% \sbox0{\small\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\footnotesize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\scriptsize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\tiny\t}^^A -% \ifdim\wd0>\linewidth -% \lwbox -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \end{quote} -% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's -% TDS installing feature, then some files can already be in the right -% place, see the documentation of \docstrip. -% -% \subsection{Refresh file name databases} -% -% If your \TeX~distribution -% (\TeX\,Live, \mikTeX, \dots) relies on file name databases, you must refresh -% these. For example, \TeX\,Live\ users run \verb|texhash| or -% \verb|mktexlsr|. -% -% \subsection{Some details for the interested} -% -% \paragraph{Unpacking with \LaTeX.} -% The \xfile{.dtx} chooses its action depending on the format: -% \begin{description} -% \item[\plainTeX:] Run \docstrip\ and extract the files. -% \item[\LaTeX:] Generate the documentation. -% \end{description} -% If you insist on using \LaTeX\ for \docstrip\ (really, -% \docstrip\ does not need \LaTeX), then inform the autodetect routine -% about your intention: -% \begin{quote} -% \verb|latex \let\install=y\input{mleftright.dtx}| -% \end{quote} -% Do not forget to quote the argument according to the demands -% of your shell. -% -% \paragraph{Generating the documentation.} -% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate -% the documentation. The process can be configured by the -% configuration file \xfile{ltxdoc.cfg}. For instance, put this -% line into this file, if you want to have A4 as paper format: -% \begin{quote} -% \verb|\PassOptionsToClass{a4paper}{article}| -% \end{quote} -% An example follows how to generate the -% documentation with pdf\LaTeX: -% \begin{quote} -%\begin{verbatim} -%pdflatex mleftright.dtx -%makeindex -s gind.ist mleftright.idx -%pdflatex mleftright.dtx -%makeindex -s gind.ist mleftright.idx -%pdflatex mleftright.dtx -%\end{verbatim} -% \end{quote} -% -% \section{Acknowledgement} -% -% \begin{description} -% \item[Donald Arsenau:] -% He provided the main trick and the first macros. -% \item[Philipp Stephani:] -% He solved the subscript problem. -% \end{description} -% -% \begin{thebibliography}{9} -% \raggedright -% \bibitem{dave} -% Dave94705, -% \textit{spacing after \cs{right}\texttt{)} and before \cs{left}\texttt{)}}, -% newsgroup comp.text.tex, -% Message-ID: \texttt{\small 5d264909-7c3d-4c9d-9b22-434178b2bf90@g21g2000prn.googlegroups.com}, -% 2010-08-12. -% \newblock -% {\small\url{https://groups.google.com/group/comp.text.tex/msg/e5b6833da7dc29bf}} -% -% \bibitem{arseneau} -% Donald Arseneau, -% \textit{Re: spacing after \cs{right}\texttt) and before \cs{left}\texttt)}, -% newsgroup comp.text.tex, -% Message-ID: \texttt{\small yfivd6svl8y.fsf@mutant.triumf.ca}, -% 2010-08-30. -% \newblock -% {\small\url{https://groups.google.com/group/comp.text.tex/msg/e0b2e4386e5d04e4}} -% -% \bibitem{stephani} -% Philipp Stephani, -% \textit{Re: spacing after \cs{right}\texttt) and before \cs{left}\texttt)}, -% newsgroup comp.text.tex, -% Message-ID: \texttt{\small 4c8c8c1e\$0\$6981\$9b4e6d93@newsspool4.arcor-online.net}, -% 2010-09-12. -% \newblock -% {\small\url{https://groups.google.com/group/comp.text.tex/msg/87ac1f61321de3ef}} -% -% \bibitem{oberdiek} -% Heiko Oberdiek, -% \textit{Re: spacing after \cs{right}\texttt) and before \cs{left}\texttt)}, -% newsgroup comp.text.tex, -% Message-ID: \texttt{\small i6jcc2\$8of\$1@news.eternal-september.org}, -% 2010-09-12. -% \newblock -% {\small\url{https://groups.google.com/group/comp.text.tex/msg/257aa6119bef878b}} -% -% \end{thebibliography} -% -% \begin{History} -% \begin{Version}{2010/09/25 v1.0} -% \item -% The first version. -% \end{Version} -% \begin{Version}{2016/05/16 v1.1} -% \item -% Documentation updates. -% \end{Version} -% \end{History} -% -% \PrintIndex -% -% \Finale -\endinput diff --git a/macros/latex/contrib/oberdiek/mleftright.pdf b/macros/latex/contrib/oberdiek/mleftright.pdf deleted file mode 100644 index 342e977b20..0000000000 Binary files a/macros/latex/contrib/oberdiek/mleftright.pdf and /dev/null differ diff --git a/macros/latex/contrib/oberdiek/oberdiek-bundle.bib b/macros/latex/contrib/oberdiek/oberdiek-bundle.bib new file mode 100644 index 0000000000..8699846e18 --- /dev/null +++ b/macros/latex/contrib/oberdiek/oberdiek-bundle.bib @@ -0,0 +1,497 @@ +@manual{oberdiek:accsupp, + title={The accsupp package}, + author={Heiko Oberdiek}, + date={2018-03-28}, + version={0.5}, + url={https://ctan.org/pkg/accsupp}, +} +@manual{oberdiek:aliascnt, + title={The aliascnt package}, + author={Heiko Oberdiek}, + date={2018-09-07}, + version={1.5}, + url={https://ctan.org/pkg/aliascnt}, +} +@manual{oberdiek:alphalph, + title={The alphalph package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={2.5}, + url={https://ctan.org/pkg/alphalph}, +} +@manual{oberdiek:askinclude, + title={The askinclude package}, + author={Pablo A. Straub and Heiko Oberdiek}, + date={2018-11-01}, + version={2.4}, + url={https://ctan.org/pkg/askinclude}, +} +@manual{oberdiek:atbegshi, + title={The atbegshi package}, + author={Heiko Oberdiek}, + date={2016-06-09}, + version={1.18}, + url={https://ctan.org/pkg/atbegshi}, +} +@manual{oberdiek:atenddvi, + title={The atenddvi package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.2}, + url={https://ctan.org/pkg/atenddvi}, +} +@manual{oberdiek:atveryend, + title={The atveryend package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.9}, + url={https://ctan.org/pkg/atveryend}, +} +@manual{oberdiek:auxhook, + title={The auxhook package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.4}, + url={https://ctan.org/pkg/auxhook}, +} +@manual{oberdiek:bigintcalc, + title={The bigintcalc package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.4}, + url={https://ctan.org/pkg/bigintcalc}, +} +@manual{oberdiek:bitset, + title={The bitset package}, + author={Heiko Oberdiek}, + date={2016/05/16}, + version={1.2}, + url={https://ctan.org/pkg/bitset}, +} +@manual{oberdiek:bmpsize, + title={The bmpsize package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.7}, + url={https://ctan.org/pkg/bmpsize}, +} +@manual{oberdiek:catchfile, + title={The catchfile package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.7}, + url={https://ctan.org/pkg/catchfile}, +} +@manual{oberdiek:centernot, + title={The centernot package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.4}, + url={https://ctan.org/pkg/centernot}, +} +@manual{oberdiek:chemarr, + title={The chemarr package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.3}, + url={https://ctan.org/pkg/chemarr}, +} +@manual{oberdiek:classlist, + title={The classlist package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.5}, + url={https://ctan.org/pkg/classlist}, +} +@manual{oberdiek:colonequals, + title={The colonequals package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.1}, + url={https://ctan.org/pkg/colonequals}, +} +@manual{oberdiek:dvipscol, + title={The dvipscol package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.3}, + url={https://ctan.org/pkg/dvipscol}, +} +@manual{oberdiek:engord, + title={The engord package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.9}, + url={https://ctan.org/pkg/engord}, +} +@manual{oberdiek:enparen, + title={The enparen package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.1}, + url={https://ctan.org/pkg/enparen}, +} +@manual{oberdiek:eolgrab, + title={The eolgrab package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.1}, + url={https://ctan.org/pkg/eolgrab}, +} +@manual{oberdiek:etexcmds, + title={The etexcmds package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.6}, + url={https://ctan.org/pkg/etexcmds}, +} +@manual{oberdiek:fibnum, + title={The fibnum package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.1}, + url={https://ctan.org/pkg/fibnum}, +} +@manual{oberdiek:flags, + title={The flags package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={0.5}, + url={https://ctan.org/pkg/flags}, +} +@manual{oberdiek:gettitlestring, + title={The gettitlestring package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.5}, + url={https://ctan.org/pkg/gettitlestring}, +} +@manual{oberdiek:hologo, + title={The hologo package}, + author={Heiko Oberdiek}, + date={2017-05-01}, + version={1.13}, + url={https://ctan.org/pkg/hologo}, +} +@manual{oberdiek:holtxdoc, + title={The holtxdoc package}, + author={Heiko Oberdiek}, + date={2019-11-12}, + version={0.29}, + url={https://ctan.org/pkg/holtxdoc}, +} +@manual{oberdiek:hopatch, + title={The hopatch package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.3}, + url={https://ctan.org/pkg/hopatch}, +} +@manual{oberdiek:hycolor, + title={The hycolor package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.8}, + url={https://ctan.org/pkg/hycolor}, +} +@manual{oberdiek:hypbmsec, + title={The hypbmsec package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={2.5}, + url={https://ctan.org/pkg/hypbmsec}, +} +@manual{oberdiek:hypcap, + title={The hypcap package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.12}, + url={https://ctan.org/pkg/hypcap}, +} +@manual{oberdiek:hypdestopt, + title={The hypdestopt package}, + author={Heiko Oberdiek}, + date={2016-05-21}, + version={2.5}, + url={https://ctan.org/pkg/hypdestopt}, +} +@manual{oberdiek:hypdoc, + title={The hypdoc package}, + author={Heiko Oberdiek}, + date={2018-09-07}, + version={1.14}, + url={https://ctan.org/pkg/hypdoc}, +} +@manual{oberdiek:hypgotoe, + title={The hypgotoe package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={0.2}, + url={https://ctan.org/pkg/hypgotoe}, +} +@manual{oberdiek:hyphsubst, + title={The hyphsubst package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={0.3}, + url={https://ctan.org/pkg/hyphsubst}, +} +@manual{oberdiek:ifdraft, + title={The ifdraft package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.4}, + url={https://ctan.org/pkg/ifdraft}, +} +@manual{oberdiek:iflang, + title={The iflang package}, + author={Heiko Oberdiek}, + date={2018-01-21}, + version={1.7}, + url={https://ctan.org/pkg/iflang}, +} +@manual{oberdiek:intcalc, + title={The intcalc package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.2}, + url={https://ctan.org/pkg/intcalc}, +} +@manual{oberdiek:kvdefinekeys, + title={The kvdefinekeys package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.4}, + url={https://ctan.org/pkg/kvdefinekeys}, +} +@manual{oberdiek:kvsetkeys, + title={The kvsetkeys package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.17}, + url={https://ctan.org/pkg/kvsetkeys}, +} +@manual{oberdiek:listingsutf8, + title={The listingsutf8 package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.3}, + url={https://ctan.org/pkg/listingsutf8}, +} +@manual{oberdiek:ltxcmds, + title={The ltxcmds package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.23}, + url={https://ctan.org/pkg/ltxcmds}, +} +@manual{oberdiek:pagegrid, + title={The pagegrid package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.5}, + url={https://ctan.org/pkg/pagegrid}, +} +@manual{oberdiek:pagesel, + title={The pagesel package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.9}, + url={https://ctan.org/pkg/pagesel}, +} +@manual{oberdiek:pdfcol, + title={The pdfcol package}, + author={Heiko Oberdiek}, + date={2018-11-01}, + version={1.5}, + url={https://ctan.org/pkg/pdfcol}, +} +@manual{oberdiek:pdfcolfoot, + title={The pdfcolfoot package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.3}, + url={https://ctan.org/pkg/pdfcolfoot}, +} +@manual{oberdiek:pdfcolparallel, + title={The pdfcolparallel package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.4}, + url={https://ctan.org/pkg/pdfcolparallel}, +} +@manual{oberdiek:pdfcolparcolumns, + title={The pdfcolparcolumns package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.4}, + url={https://ctan.org/pkg/pdfcolparcolumns}, +} +@manual{oberdiek:pdfcrypt, + title={The pdfcrypt package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.1}, + url={https://ctan.org/pkg/pdfcrypt}, +} +@manual{oberdiek:pdfescape, + title={The pdfescape package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.14}, + url={https://ctan.org/pkg/pdfescape}, +} +@manual{oberdiek:pdflscape, + title={The pdflscape package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={0.11}, + url={https://ctan.org/pkg/pdflscape}, +} +@manual{oberdiek:pdfrender, + title={The pdfrender package}, + author={Heiko Oberdiek}, + date={2018-11-01}, + version={1.5}, + url={https://ctan.org/pkg/pdfrender}, +} +@manual{oberdiek:picture, + title={The picture package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.4}, + url={https://ctan.org/pkg/picture}, +} +@manual{oberdiek:pmboxdraw, + title={The pmboxdraw package}, + author={Heiko Oberdiek}, + date={2019-02-28}, + version={1.3}, + url={https://ctan.org/pkg/pmboxdraw}, +} +@manual{oberdiek:protecteddef, + title={The protecteddef package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.1}, + url={https://ctan.org/pkg/protecteddef}, +} +@manual{oberdiek:refcount, + title={The refcount package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={3.5}, + url={https://ctan.org/pkg/refcount}, +} +@manual{oberdiek:rerunfilecheck, + title={The rerunfilecheck package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.8}, + url={https://ctan.org/pkg/rerunfilecheck}, +} +@manual{oberdiek:resizegather, + title={The resizegather package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.3}, + url={https://ctan.org/pkg/resizegather}, +} +@manual{oberdiek:rotchiffre, + title={The rotchiffre package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.1}, + url={https://ctan.org/pkg/rotchiffre}, +} +@manual{oberdiek:scrindex, + title={The scrindex package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.3}, + url={https://ctan.org/pkg/scrindex}, +} +@manual{oberdiek:selinput, + title={The selinput package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.4}, + url={https://ctan.org/pkg/selinput}, +} +@manual{oberdiek:setouterhbox, + title={The setouterhbox package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.8}, + url={https://ctan.org/pkg/setouterhbox}, +} +@manual{oberdiek:settobox, + title={The settobox package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.5}, + url={https://ctan.org/pkg/settobox}, +} +@manual{oberdiek:soulutf8, + title={The soulutf8 package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.1}, + url={https://ctan.org/pkg/soulutf8}, +} +@manual{oberdiek:stackrel, + title={The stackrel package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.3}, + url={https://ctan.org/pkg/stackrel}, +} +@manual{oberdiek:stampinclude, + title={The stampinclude package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.1}, + url={https://ctan.org/pkg/stampinclude}, +} +@manual{oberdiek:tabularht, + title={The tabularht package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={2.6}, + url={https://ctan.org/pkg/tabularht}, +} +@manual{oberdiek:tabularkv, + title={The tabularkv package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.2}, + url={https://ctan.org/pkg/tabularkv}, +} +@manual{oberdiek:telprint, + title={The telprint package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.11}, + url={https://ctan.org/pkg/telprint}, +} +@manual{oberdiek:thepdfnumber, + title={The thepdfnumber package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.1}, + url={https://ctan.org/pkg/thepdfnumber}, +} +@manual{oberdiek:twoopt, + title={The twoopt package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.6}, + url={https://ctan.org/pkg/twoopt}, +} +@manual{oberdiek:uniquecounter, + title={The uniquecounter package}, + author={Heiko Oberdiek}, + date={2016-05-16}, + version={1.3}, + url={https://ctan.org/pkg/uniquecounter}, +} diff --git a/macros/latex/contrib/oberdiek/oberdiek-source.bib b/macros/latex/contrib/oberdiek/oberdiek-source.bib new file mode 100644 index 0000000000..36f546aa53 --- /dev/null +++ b/macros/latex/contrib/oberdiek/oberdiek-source.bib @@ -0,0 +1,27 @@ +@book{pdfspec-iso32000-1, + author={{Adobe Systems Incorporated}}, + title={Document management -- Portable document format -- Part 1: PDF 1.7}, + date={2008-07-01}, + edition=1, + url={https://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/PDF32000_2008.pdf}, + urldate={2011-11-25}, +} +@manual{pdftex-manual, + sortname={Han, The Thanh}, + author={{\hologo{HanTheThanh}} and Rahtz, Sebastian and Henkel, Hartmut + and Jackowski, Pawe{\l} and Schr{\"o}der, Martin}, + title={The {\hologo{pdfTeX}} user manual}, + version={655 (1.40.11)}, + date={2010-11-23}, + url={http://mirror.ctan.org/systems/pdftex/manual/pdftex-a.pdf}, + urldate={2011-11-29}, +} +@manual{luatex-manual, + sortname={LuaTeX, development team}, + author={{\hologo{LuaTeX}} development team}, + title={{\hologo{LuaTeX}} Reference}, + version={beta 0.71.0}, + date={2011-10-11}, + url={http://www.luatex.org/svn/trunk/manual/luatex.pdf}, + urldate={2011-11-29}, +} diff --git a/macros/latex/contrib/oberdiek/oberdiek.ins b/macros/latex/contrib/oberdiek/oberdiek.ins new file mode 100644 index 0000000000..d977aee442 --- /dev/null +++ b/macros/latex/contrib/oberdiek/oberdiek.ins @@ -0,0 +1,109 @@ +% oberdiek.ins +% 2019/12/03 +% +% Copyright (C) +% 1999, 2001, 2006 Heiko Oberdiek +% 2016-2019 Oberdiek Package Support Group +% https://github.com/ho-tex/oberdiek/issues +% +% 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 2003/12/01 or later. +% +% This work has the LPPL maintenance status "maintained". +% +% The Current Maintainers of this work are +% Heiko Oberdiek and the Oberdiek Package Support Group +% https://github.com/ho-tex/oberdiek/issues +% +% This work consists of the overview "oberdiek.pdf", its source +% "oberdiek.tex", and the installation script "oberdiek.ins" +% for the projects in CTAN:macros/latex/contrib/oberdiek/. +% +\input docstrip + +\batchinput{accsupp.dtx} +\batchinput{aliascnt.dtx} +\batchinput{alphalph.dtx} +\batchinput{askinclude.dtx} +\batchinput{atbegshi.dtx} +\batchinput{atenddvi.dtx} +\batchinput{atveryend.dtx} +\batchinput{auxhook.dtx} +\batchinput{bigintcalc.dtx} +\batchinput{bitset.dtx} +\batchinput{bmpsize.dtx} +\batchinput{catchfile.dtx} +\batchinput{centernot.dtx} +\batchinput{chemarr.dtx} +\batchinput{classlist.dtx} +\batchinput{colonequals.dtx} +\batchinput{dvipscol.dtx} +\batchinput{engord.dtx} +\batchinput{enparen.dtx} +\batchinput{eolgrab.dtx} +\batchinput{etexcmds.dtx} +\batchinput{fibnum.dtx} +\batchinput{flags.dtx} +\batchinput{gettitlestring.dtx} +\batchinput{hologo.dtx} +\batchinput{holtxdoc.dtx} +\batchinput{hopatch.dtx} +\batchinput{hycolor.dtx} +\batchinput{hypbmsec.dtx} +\batchinput{hypcap.dtx} +\batchinput{hypdestopt.dtx} +\batchinput{hypdoc.dtx} +\batchinput{hypgotoe.dtx} +\batchinput{hyphsubst.dtx} +\batchinput{ifdraft.dtx} +\batchinput{iflang.dtx} +\batchinput{intcalc.dtx} +\batchinput{kvdefinekeys.dtx} +\batchinput{kvsetkeys.dtx} +\batchinput{listingsutf8.dtx} +\batchinput{ltxcmds.dtx} +\batchinput{pagegrid.dtx} +\batchinput{pagesel.dtx} +\batchinput{pdfcol.dtx} +\batchinput{pdfcolfoot.dtx} +\batchinput{pdfcolparallel.dtx} +\batchinput{pdfcolparcolumns.dtx} +\batchinput{pdfcrypt.dtx} +\batchinput{pdfescape.dtx} +\batchinput{pdflscape.dtx} +\batchinput{pdfrender.dtx} +\batchinput{picture.dtx} +\batchinput{pmboxdraw.dtx} +\batchinput{protecteddef.dtx} +\batchinput{refcount.dtx} +\batchinput{rerunfilecheck.dtx} +\batchinput{resizegather.dtx} +\batchinput{rotchiffre.dtx} +\batchinput{scrindex.dtx} +\batchinput{selinput.dtx} +\batchinput{setouterhbox.dtx} +\batchinput{settobox.dtx} +\batchinput{soulutf8.dtx} +\batchinput{stackrel.dtx} +\batchinput{stampinclude.dtx} +\batchinput{tabularht.dtx} +\batchinput{tabularkv.dtx} +\batchinput{telprint.dtx} +\batchinput{thepdfnumber.dtx} +\batchinput{twoopt.dtx} +\batchinput{uniquecounter.dtx} + +\Msg{} +\Msg{********************************************************} +\Msg{*} +\Msg{* Unpacking completed, now finish the installation.} +\Msg{*} +\Msg{********************************************************} +\Msg{} + +\endbatchfile diff --git a/macros/latex/contrib/oberdiek/oberdiek.pdf b/macros/latex/contrib/oberdiek/oberdiek.pdf index 3810bd512d..c1b1fcd067 100644 Binary files a/macros/latex/contrib/oberdiek/oberdiek.pdf and b/macros/latex/contrib/oberdiek/oberdiek.pdf differ diff --git a/macros/latex/contrib/oberdiek/oberdiek.tex b/macros/latex/contrib/oberdiek/oberdiek.tex index aa80f29afb..4de3c5bbee 100644 --- a/macros/latex/contrib/oberdiek/oberdiek.tex +++ b/macros/latex/contrib/oberdiek/oberdiek.tex @@ -3,6 +3,9 @@ \newcommand*{\Title}{Overview} \newcommand*{\CTANdir}{macros/latex/contrib/oberdiek/} \newcommand*{\CTANroot}{http://mirror.ctan.org/} +\newcommand*{\CTANpkg}[1]{% + \href{http://ctan.org/pkg/#1}{[ctan]}% +} \newcommand*{\Subject}{CTAN:\CTANdir} \newcommand*{\Author}{Heiko Oberdiek} @@ -34,9 +37,7 @@ \usepackage{iftex} \ifluatex - \usepackage{fontspec}[2011/09/18]% \usepackage{unicode-math}[2011/09/19]% - \setmathfont{latinmodern-math.otf}% \fi \usepackage[ @@ -140,24 +141,20 @@ \newenvironment{overview}{% \setlength{\tabcolsep}{0.8\tabcolsep}% \setlength{\LTleft}{0pt}% - \longtable{@{}llll@{}} + \longtable{@{}lll@{}} }{% \endlongtable } -\newcommand*{\entry}[4]{% +\newcommand*{\entry}[2]{% \href{file:#1.pdf}{% \bfseries\xpackage{#1}% }% - & #2% - & v#3% - & \href{\CTANroot\CTANdir #1.pdf}{[pdf]} % - \href{\CTANroot\CTANdir #1.dtx}{[dtx]} + & + #2% + & \CTANpkg{#1} % \\*% \hyperref[{#1}]{\small (contents)}% & - \multicolumn{2}{l}{% - #4% - }% \\% } \newcommand*{\entrysep}{1.5ex} @@ -177,165 +174,147 @@ \section{Overview} \begin{overview} -\entry{accsupp}{2010/01/16}{0.3}{Accessibility support by marked content}% -[\entrysep] -\entry{aliascnt}{2009/09/08}{1.3}{Alias counters}% -[\entrysep] -\entry{alphalph}{2011/05/13}{2.4}{Convert numbers to letters}% -[\entrysep] -\entry{askinclude}{2011/12/02}{2.2}{Interactive asking of included files}% -[\entrysep] -\entry{atbegshi}{2011/10/05}{1.16}{At begin shipout hook}% -[\entrysep] -\entry{atenddvi}{2007/04/17}{1.1}{At end DVI hook}% -[\entrysep] -\entry{atveryend}{2011/06/30}{1.8}{Hooks at the very end of document}% +\entry{accsupp}{Accessibility support by marked content}% [\entrysep] -\entry{auxhook}{2011/03/04}{1.3}{Hooks for auxiliary files}% +\entry{aliascnt}{Alias counters}% [\entrysep] -\entry{bigintcalc}{2012/04/08}{1.3}{Expandable calculations on big integers}% +\entry{alphalph}{Convert numbers to letters}% [\entrysep] -\entry{bitset}{2011/01/30}{1.1}{Handle bit-vector datatype}% +\entry{askinclude}{Interactive asking of included files}% [\entrysep] -\entry{bmpsize}{2009/09/04}{1.6}{Extract size/resolution from bitmap files}% +\entry{atbegshi}{At begin shipout hook}% [\entrysep] -\entry{bookmark}{2011/12/02}{1.24}{PDF bookmarks}% +\entry{atenddvi}{At end DVI hook}% [\entrysep] -\entry{catchfile}{2011/03/01}{1.6}{Catch the contents of a file}% +\entry{atveryend}{Hooks at the very end of document}% [\entrysep] -\entry{centernot}{2011/07/11}{1.3}{Centers the not symbol horizontally}% +\entry{auxhook}{Hooks for auxiliary files}% [\entrysep] -\entry{chemarr}{2006/02/20}{1.2}{Arrows for chemical reactions}% +\entry{bigintcalc}{Expandable calculations on big integers}% [\entrysep] -\entry{classlist}{2011/10/17}{1.4}{Record classes used in a document}% +\entry{bitset}{Handle bit-vector datatype}% [\entrysep] -\entry{colonequals}{2006/08/01}{1.0}{Colon equals symbols}% +\entry{bmpsize}{Extract size/resolution from bitmap files}% [\entrysep] -\entry{dvipscol}{2008/08/11}{1.2}{Alter the usage of the dvips color stack}% +\entry{catchfile}{Catch the contents of a file}% [\entrysep] -\entry{embedfile}{2011/04/13}{2.6}{Embed files into PDF}% +\entry{centernot}{Centers the not symbol horizontally}% [\entrysep] -\entry{engord}{2010/03/01}{1.8}{Provides English ordinal numbers}% +\entry{chemarr}{Arrows for chemical reactions}% [\entrysep] -\entry{enparen}{2012/01/07}{1.0}{Parentheses nesting}% +\entry{classlist}{Record classes used in a document}% [\entrysep] -\entry{eolgrab}{2011/01/12}{1.0}{Catch arguments delimited by end of line}% +\entry{colonequals}{Colon equals symbols}% [\entrysep] -\entry{etexcmds}{2011/02/16}{1.5}{Avoid name clashes with \hologo{eTeX} commands}% +\entry{dvipscol}{Alter the usage of the dvips color stack}% [\entrysep] -\entry{fibnum}{2012/04/08}{1.0}{Fibonacci numbers}% +\entry{engord}{Provides English ordinal numbers}% [\entrysep] -\entry{flags}{2007/09/30}{0.4}{Setting/clearing of flags in bit fields}% +\entry{enparen}{Parentheses nesting}% [\entrysep] -\entry{gettitlestring}{2010/12/03}{1.4}{Cleanup title references}% +\entry{eolgrab}{Catch arguments delimited by end of line}% [\entrysep] -\entry{grfext}{2010/08/19}{1.1}{Manage graphics extensions}% +\entry{etexcmds}{Avoid name clashes with \hologo{eTeX} commands}% [\entrysep] -\entry{hologo}{2012/04/26}{1.10}{A logo collection with bookmark support}% +\entry{fibnum}{Fibonacci numbers}% [\entrysep] -\entry{holtxdoc}{2012/03/21}{0.24}{Private additional ltxdoc support}% +\entry{flags}{Setting/clearing of flags in bit fields}% [\entrysep] -\entry{hopatch}{2011/06/24}{1.1}{Wrapper for package hooks}% +\entry{gettitlestring}{Cleanup title references}% [\entrysep] -\entry{hycolor}{2011/01/30}{1.7}{Color options for hyperref/bookmark}% +\entry{hologo}{A logo collection with bookmark support}% [\entrysep] -\entry{hypbmsec}{2007/04/11}{2.4}{Bookmarks in sectioning commands}% +\entry{holtxdoc}{Private additional ltxdoc support}% [\entrysep] -\entry{hypcap}{2011/02/16}{1.11}{Adjusting the anchors of captions}% +\entry{hopatch}{Wrapper for package hooks}% [\entrysep] -\entry{hypdestopt}{2011/05/13}{2.3}{Hyperref destination optimizer}% +\entry{hycolor}{Color options for hyperref/bookmark}% [\entrysep] -\entry{hypdoc}{2011/08/19}{1.11}{Hyper extensions for doc.sty}% +\entry{hypbmsec}{Bookmarks in sectioning commands}% [\entrysep] -\entry{hypgotoe}{2007/10/30}{0.1}{Links to embedded files}% +\entry{hypcap}{Adjusting the anchors of captions}% [\entrysep] -\entry{hyphsubst}{2008/06/09}{0.2}{Substitute hyphenation patterns}% +\entry{hypdestopt}{Hyperref destination optimizer}% [\entrysep] -\entry{ifdraft}{2008/08/11}{1.3}{Detect class options draft and final}% +\entry{hypdoc}{Hyper extensions for doc.sty}% [\entrysep] -\entry{iflang}{2007/11/11}{1.5}{Checks for the current language}% +\entry{hypgotoe}{Links to embedded files}% [\entrysep] -% iftex distribution \entry{ifluatex}{2010/03/01}{1.3}{Provides the ifluatex switch}% -% iftex distribution [\entrysep] -% iftex distribution \entry{ifpdf}{2011/01/30}{2.3}{Provides the ifpdf switch}% -% iftex distribution [\entrysep] -% iftex distribution \entry{ifvtex}{2010/03/01}{1.5}{Detect \hologo{VTeX} and its facilities}% -% iftex distribution [\entrysep] -\entry{infwarerr}{2010/04/08}{1.3}{Providing info/warning/error messages}% +\entry{hyphsubst}{Substitute hyphenation patterns}% [\entrysep] -\entry{intcalc}{2007/09/27}{1.1}{Expandable calculations with integers}% +\entry{ifdraft}{Detect class options draft and final}% [\entrysep] -\entry{kvdefinekeys}{2011/04/07}{1.3}{Define keys}% +\entry{iflang}{Checks for the current language}% [\entrysep] -\entry{kvsetkeys}{2012/04/25}{1.16}{Key value parser}% +\entry{intcalc}{Expandable calculations with integers}% [\entrysep] -\entry{letltxmacro}{2010/09/02}{1.4}{Let assignment for \hologo{LaTeX} macros}% +\entry{kvdefinekeys}{Define keys}% [\entrysep] -\entry{listingsutf8}{2011/11/10}{1.2}{Allow UTF-8 in listings input}% +\entry{kvsetkeys}{Key value parser}% [\entrysep] -\entry{ltxcmds}{2011/11/09}{1.22}{\hologo{LaTeX} kernel commands for general use}% +\entry{listingsutf8}{Allow UTF-8 in listings input}% [\entrysep] -\entry{mleftright}{2010/09/25}{1.0}{Math left/right delim.\@ as open/close}% +\entry{ltxcmds}{\hologo{LaTeX} kernel commands for general use}% [\entrysep] -\entry{pagegrid}{2009/12/04}{1.4}{Print page grid in background}% +\entry{pagegrid}{Print page grid in background}% [\entrysep] -\entry{pagesel}{2008/08/11}{1.8}{Select pages of a document for output}% +\entry{pagesel}{Select pages of a document for output}% [\entrysep] -\entry{pdfcol}{2007/12/12}{1.2}{Handle new color stacks for \hologo{pdfTeX}}% +\entry{pdfcol}{Handle new color stacks for \hologo{pdfTeX}}% [\entrysep] -\entry{pdfcolfoot}{2012/01/02}{1.2}{Color stack for footnotes with \hologo{pdfTeX}}% +\entry{pdfcolfoot}{Color stack for footnotes with \hologo{pdfTeX}}% [\entrysep] -\entry{pdfcolparallel}{2010/01/11}{1.3}{Color stacks support for parallel}% +\entry{pdfcolparallel}{Color stacks support for parallel}% [\entrysep] -\entry{pdfcolparcolumns}{2010/01/11}{1.3}{Color stacks for parcolumns}% +\entry{pdfcolparcolumns}{Color stacks for parcolumns}% [\entrysep] -\entry{pdfcrypt}{2007/04/26}{1.0}{Allows the setting of PDF encryption}% +\entry{pdfcrypt}{Allows the setting of PDF encryption}% [\entrysep] -\entry{pdfescape}{2011/11/25}{1.13}{Implements \hologo{pdfTeX}'s escape features}% +\entry{pdfescape}{Implements \hologo{pdfTeX}'s escape features}% [\entrysep] -\entry{pdflscape}{2008/08/11}{0.10}{Display of landscape pages in PDF}% +\entry{pdflscape}{Display of landscape pages in PDF}% [\entrysep] -\entry{pdfrender}{2010/01/28}{1.2}{Access to some PDF graphics parameters}% +\entry{pdfrender}{Access to some PDF graphics parameters}% [\entrysep] -\entry{picture}{2009/10/11}{1.3}{Dimens for picture macros}% +\entry{picture}{Dimens for picture macros}% [\entrysep] -\entry{pmboxdraw}{2011/03/24}{1.1}{Poor man's box drawing characters}% +\entry{pmboxdraw}{Poor man's box drawing characters}% [\entrysep] -\entry{protecteddef}{2011/01/31}{1.0}{Define protected commands}% +\entry{protecteddef}{Define protected commands}% [\entrysep] -\entry{refcount}{2011/10/16}{3.4}{Data extraction from label references}% +\entry{refcount}{Data extraction from label references}% [\entrysep] -\entry{rerunfilecheck}{2011/04/15}{1.7}{Rerun checks for auxiliary files}% +\entry{rerunfilecheck}{Rerun checks for auxiliary files}% [\entrysep] -\entry{resizegather}{2010/03/01}{1.2}{Resize overly large equations}% +\entry{resizegather}{Resize overly large equations}% [\entrysep] -\entry{rotchiffre}{2010/11/12}{1.0}{Perform simple rotation ciphers}% +\entry{rotchiffre}{Perform simple rotation ciphers}% [\entrysep] -\entry{scrindex}{2008/08/11}{1.1}{Package index with \hologo{KOMAScript} classes}% +\entry{scrindex}{Package index with \hologo{KOMAScript} classes}% [\entrysep] -\entry{selinput}{2007/09/09}{1.2}{Semi-automatic input encoding detection}% +\entry{selinput}{Semi-automatic input encoding detection}% [\entrysep] -\entry{setouterhbox}{2007/09/09}{1.7}{Set hbox in outer horizontal mode}% +\entry{setouterhbox}{Set hbox in outer horizontal mode}% [\entrysep] -\entry{settobox}{2008/08/11}{1.4}{Assign box dimensions to length registers}% +\entry{settobox}{Assign box dimensions to length registers}% [\entrysep] -\entry{soulutf8}{2007/09/09}{1.0}{Permit use of UTF-8 characters in soul}% +\entry{soulutf8}{Permit use of UTF-8 characters in soul}% [\entrysep] -\entry{stackrel}{2007/11/11}{1.2}{Adding subscript option to stackrel}% +\entry{stackrel}{Adding subscript option to stackrel}% [\entrysep] -\entry{stampinclude}{2008/07/14}{1.0}{Include files based on time stamps}% +\entry{stampinclude}{Include files based on time stamps}% [\entrysep] -\entry{tabularht}{2007/04/11}{2.5}{Tabular with height specified}% +\entry{tabularht}{Tabular with height specified}% [\entrysep] -\entry{tabularkv}{2006/02/20}{1.1}{Tabular with key value interface}% +\entry{tabularkv}{Tabular with key value interface}% [\entrysep] -\entry{telprint}{2008/08/11}{1.10}{Format German phone numbers}% +\entry{telprint}{Format German phone numbers}% [\entrysep] -\entry{thepdfnumber}{2011/11/24}{1.0}{Print PDF numbers with minimal digits}% +\entry{thepdfnumber}{Print PDF numbers with minimal digits}% [\entrysep] -\entry{twoopt}{2008/08/11}{1.5}{Definitions with two optional arguments}% +\entry{twoopt}{Definitions with two optional arguments}% [\entrysep] -\entry{uniquecounter}{2011/01/30}{1.2}{Provide unlimited unique counter}% +\entry{uniquecounter}{Provide unlimited unique counter}% \end{overview} \section{Packages} @@ -456,19 +435,6 @@ options \xoption{viewport}, \xoption{trim} and \xoption{clip}. \end{abstract} \tocinclude{bmpsize} -\newpage -\subsection{\pkgsectformat{bookmark}} -\label{bookmark} -\begin{abstract} -This package implements a new bookmark (outline) organization for -package \xpackage{hyperref}. Bookmark properties such -as style and color can now be set. Other action types -are available (URI, GoToR, Named). The bookmarks are -generated in the first compile run. Package \xpackage{hyperref} -uses two runs. -\end{abstract} -\tocinclude{bookmark} - \newpage \subsection{\pkgsectformat{catchfile}} \label{catchfile} @@ -530,14 +496,6 @@ uses of the stack to avoid the error ``out of coor stack space''. \end{abstract} \tocinclude{dvipscol} -\newpage -\subsection{\pkgsectformat{embedfile}} -\label{embedfile} -\begin{abstract} -This package embeds files to a PDF document. -Currently the only supported driver is \pdfTeX\ $>=$ 1.30 in PDF mode. -\end{abstract} -\tocinclude{embedfile} \newpage \subsection{\pkgsectformat{engord}} @@ -607,16 +565,6 @@ commands from title strings. \end{abstract} \tocinclude{gettitlestring} -\newpage -\subsection{\pkgsectformat{grfext}} -\label{grfext} -\begin{abstract} -This package provides macros for adding and reordering -graphics extensions of package \xpackage{graphics}. -\end{abstract} -\tocinclude{grfext} - - \newpage \subsection{\pkgsectformat{hologo}} \label{hologo} @@ -741,15 +689,6 @@ based on macro \cs{languagename} or hyphenation patterns. \end{abstract} \tocinclude{iflang} -\newpage -\subsection{\pkgsectformat{infwarerr}} -\label{infwarerr} -\begin{abstract} -This package provides a complete set of macros for informations, -warnings and error messages with support for \plainTeX. -\end{abstract} -\tocinclude{infwarerr} - \newpage \subsection{\pkgsectformat{intcalc}} \label{intcalc} @@ -781,18 +720,6 @@ only one level of curly braces is removed from the values. \end{abstract} \tocinclude{kvsetkeys} -\newpage -\subsection{\pkgsectformat{letltxmacro}} -\label{letltxmacro} -\begin{abstract} -\TeX's \cs{let} assignment does not work for \LaTeX\ macros -with optional arguments or for macros that are defined -as robust macros by \cs{DeclareRobustCommand}. This package -defines \cs{LetLtxMacro} that also takes care of the involved -internal macros. -\end{abstract} -\tocinclude{letltxmacro} - \newpage \subsection{\pkgsectformat{listingsutf8}} \label{listingsutf8} @@ -815,18 +742,6 @@ also provides them for other formats such as plain-\TeX. \end{abstract} \tocinclude{ltxcmds} -\newpage -\subsection{\pkgsectformat{mleftright}} -\label{mleftright} -\begin{abstract} -\TeX\ sets subformulas by \cs{left} and \cs{right} as inner formulas -with additional surrounding spaces in some situations. This package -provides \cs{mleft} and \cs{mright} that call \cs{left} and \cs{right}, -but the delimiters will act as normal \cs{mathopen} and \cs{mathclose} -delimiters without the additional space of an inner formula. -\end{abstract} -\tocinclude{mleftright} - \newpage \subsection{\pkgsectformat{pagegrid}} \label{pagegrid} diff --git a/macros/latex/contrib/oberdiek/pagegrid.dtx b/macros/latex/contrib/oberdiek/pagegrid.dtx index bfd57d7ba7..60c0794247 100644 --- a/macros/latex/contrib/oberdiek/pagegrid.dtx +++ b/macros/latex/contrib/oberdiek/pagegrid.dtx @@ -63,7 +63,6 @@ % Installation: % TDS:tex/latex/oberdiek/pagegrid.sty % TDS:doc/latex/oberdiek/pagegrid.pdf -% TDS:doc/latex/oberdiek/test/pagegrid-test1.tex % TDS:source/latex/oberdiek/pagegrid.dtx % %<*ignore> @@ -131,10 +130,6 @@ and the derived files \file{pagegrid.sty}{\from{pagegrid.dtx}{package}}% % \usedir{doc/latex/oberdiek/test}% % \file{pagegrid-test1.tex}{\from{pagegrid.dtx}{test1}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{pagegrid.xml}{\from{pagegrid.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -171,21 +166,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{pagegrid.drv} % @@ -772,118 +752,7 @@ and the derived files \pagegrid@AtEnd% % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input pagegrid.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -932,7 +801,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % pagegrid.sty & tex/latex/oberdiek/pagegrid.sty\\ % pagegrid.pdf & doc/latex/oberdiek/pagegrid.pdf\\ -% test/pagegrid-test1.tex & doc/latex/oberdiek/test/pagegrid-test1.tex\\ % pagegrid.dtx & source/latex/oberdiek/pagegrid.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/pagegrid.pdf b/macros/latex/contrib/oberdiek/pagegrid.pdf index 976d9ae56d..c39dc8c8fe 100644 Binary files a/macros/latex/contrib/oberdiek/pagegrid.pdf and b/macros/latex/contrib/oberdiek/pagegrid.pdf differ diff --git a/macros/latex/contrib/oberdiek/pagesel.dtx b/macros/latex/contrib/oberdiek/pagesel.dtx index d0bddbefde..b674f803d4 100644 --- a/macros/latex/contrib/oberdiek/pagesel.dtx +++ b/macros/latex/contrib/oberdiek/pagesel.dtx @@ -126,10 +126,6 @@ and the derived files \file{pagesel.drv}{\from{pagesel.dtx}{driver}}% \usedir{tex/latex/oberdiek}% \file{pagesel.sty}{\from{pagesel.dtx}{package}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{pagesel.xml}{\from{pagesel.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -166,21 +162,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{pagesel.drv} % diff --git a/macros/latex/contrib/oberdiek/pagesel.pdf b/macros/latex/contrib/oberdiek/pagesel.pdf index 6e14e5ceb6..8d67402b44 100644 Binary files a/macros/latex/contrib/oberdiek/pagesel.pdf and b/macros/latex/contrib/oberdiek/pagesel.pdf differ diff --git a/macros/latex/contrib/oberdiek/pdfcol.dtx b/macros/latex/contrib/oberdiek/pdfcol.dtx index e9a5cd552e..c86a2e6720 100644 --- a/macros/latex/contrib/oberdiek/pdfcol.dtx +++ b/macros/latex/contrib/oberdiek/pdfcol.dtx @@ -66,10 +66,6 @@ % Installation: % TDS:tex/generic/oberdiek/pdfcol.sty % TDS:doc/latex/oberdiek/pdfcol.pdf -% TDS:doc/latex/oberdiek/test/pdfcol-test1.tex -% TDS:doc/latex/oberdiek/test/pdfcol-test2.tex -% TDS:doc/latex/oberdiek/test/pdfcol-test3.tex -% TDS:doc/latex/oberdiek/test/pdfcol-test4.tex % TDS:source/latex/oberdiek/pdfcol.dtx % %<*ignore> @@ -143,10 +139,6 @@ and the derived files % \file{pdfcol-test2.tex}{\from{pdfcol.dtx}{test2}}% % \file{pdfcol-test3.tex}{\from{pdfcol.dtx}{test3}}% % \file{pdfcol-test4.tex}{\from{pdfcol.dtx}{test4}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{pdfcol.xml}{\from{pdfcol.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -183,21 +175,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{pdfcol.drv} % @@ -766,180 +743,7 @@ and the derived files \PDFCOL@AtEnd% % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input pdfcol.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Very simple test} -% -% \begin{macrocode} -%<*test2|test3> -\NeedsTeXFormat{LaTeX2e} -\nofiles -\documentclass{article} -\usepackage{pdfcol}[2018/11/01] -\usepackage{qstest} -\IncludeTests{*} -\LogTests{log}{*}{*} -\begin{document} - \begin{qstest}{pdfcol}{}% - \makeatletter -%<*test2> - \Expect*{\ifpdfcolAvailable true\else false\fi}{false}% -% -%<*test3> - \Expect*{\ifpdfcolAvailable true\else false\fi}{true}% - \Expect*{\number\@pdfcolorstack}{0}% -% - \setbox0=\hbox{% - \pdfcolInitStack{test}% -%<*test3> - \Expect*{\number\pdfcol@Stack@test}{1}% - \Expect*{\number\@pdfcolorstack}{0}% -% - \pdfcolSwitchStack{test}% -%<*test3> - \Expect*{\number\@pdfcolorstack}{1}% -% - \pdfcolSetCurrent{test}% - \pdfcolSetCurrent{}% - }% - \Expect*{\the\wd0}{0.0pt}% -%<*test3> - \Expect*{\number\@pdfcolorstack}{0}% - \Expect*{\number\pdfcol@Stack@test}{1}% - \Expect*{\pdfcolIfStackExists{test}{true}{false}}{true}% -% - \Expect*{\pdfcolIfStackExists{dummy}{true}{false}}{false}% - \end{qstest}% -\end{document} -% -% \end{macrocode} -% -% \subsection{Detection of package \xpackage{luacolor}} -% -% \begin{macrocode} -%<*test4> -\NeedsTeXFormat{LaTeX2e} -\documentclass{article} -\usepackage{luacolor} -\usepackage{pdfcol} -\makeatletter -\ifpdfcolAvailable - \@latex@error{Detection of package luacolor failed}% -\fi -\csname @@end\endcsname -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -988,10 +792,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % pdfcol.sty & tex/generic/oberdiek/pdfcol.sty\\ % pdfcol.pdf & doc/latex/oberdiek/pdfcol.pdf\\ -% test/pdfcol-test1.tex & doc/latex/oberdiek/test/pdfcol-test1.tex\\ -% test/pdfcol-test2.tex & doc/latex/oberdiek/test/pdfcol-test2.tex\\ -% test/pdfcol-test3.tex & doc/latex/oberdiek/test/pdfcol-test3.tex\\ -% test/pdfcol-test4.tex & doc/latex/oberdiek/test/pdfcol-test4.tex\\ % pdfcol.dtx & source/latex/oberdiek/pdfcol.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/pdfcol.pdf b/macros/latex/contrib/oberdiek/pdfcol.pdf index bdb0447b13..09162628ac 100644 Binary files a/macros/latex/contrib/oberdiek/pdfcol.pdf and b/macros/latex/contrib/oberdiek/pdfcol.pdf differ diff --git a/macros/latex/contrib/oberdiek/pdfcolfoot.dtx b/macros/latex/contrib/oberdiek/pdfcolfoot.dtx index c2b22be98f..04aaf31a3a 100644 --- a/macros/latex/contrib/oberdiek/pdfcolfoot.dtx +++ b/macros/latex/contrib/oberdiek/pdfcolfoot.dtx @@ -63,7 +63,6 @@ % Installation: % TDS:tex/latex/oberdiek/pdfcolfoot.sty % TDS:doc/latex/oberdiek/pdfcolfoot.pdf -% TDS:doc/latex/oberdiek/test/pdfcolfoot-test1.tex % TDS:source/latex/oberdiek/pdfcolfoot.dtx % %<*ignore> @@ -131,10 +130,6 @@ and the derived files \file{pdfcolfoot.sty}{\from{pdfcolfoot.dtx}{package}}% % \usedir{doc/latex/oberdiek/test}% % \file{pdfcolfoot-test1.tex}{\from{pdfcolfoot.dtx}{test1}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{pdfcolfoot.xml}{\from{pdfcolfoot.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -171,21 +166,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{pdfcolfoot.drv} % @@ -502,35 +482,7 @@ and the derived files % \begin{macrocode} % % \end{macrocode} -% -% \section{Test} -% -% \begin{macrocode} -%<*test1> -\NeedsTeXFormat{LaTeX2e} -\AtEndDocument{% - \typeout{}% - \typeout{**************************************}% - \typeout{*** \space Check the PDF file manually! \space ***}% - \typeout{**************************************}% - \typeout{}% -} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname pdfcompresslevel\endcsname\relax -\else - \pdfcompresslevel=0 % -\fi -\documentclass[12pt,a5paper]{article} -\usepackage{pdfcolfoot}[2016/05/16] -\dimen\footins=\baselineskip % for testing -\begin{document} - Black\footnote{Black \textcolor{blue}{Blue\\Blue} Black} % - \textcolor{red}{Red\newpage Red} Black% -\end{document} -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -579,7 +531,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % pdfcolfoot.sty & tex/latex/oberdiek/pdfcolfoot.sty\\ % pdfcolfoot.pdf & doc/latex/oberdiek/pdfcolfoot.pdf\\ -% test/pdfcolfoot-test1.tex & doc/latex/oberdiek/test/pdfcolfoot-test1.tex\\ % pdfcolfoot.dtx & source/latex/oberdiek/pdfcolfoot.dtx\\ % \end{tabular}^^A % }^^A @@ -695,7 +646,7 @@ and the derived files % \bibitem{pdfcol} % Heiko Oberdiek: \textit{The \xpackage{pdfcol} package}; % 2007/09/09;\\ -% \CTAN{macros/latex/contrib/oberdiek/pdfcol.pdf}. +% \CTANpkg{pdfcol}. % % \end{thebibliography} % diff --git a/macros/latex/contrib/oberdiek/pdfcolfoot.pdf b/macros/latex/contrib/oberdiek/pdfcolfoot.pdf index 122a60577e..df94353acb 100644 Binary files a/macros/latex/contrib/oberdiek/pdfcolfoot.pdf and b/macros/latex/contrib/oberdiek/pdfcolfoot.pdf differ diff --git a/macros/latex/contrib/oberdiek/pdfcolparallel.dtx b/macros/latex/contrib/oberdiek/pdfcolparallel.dtx index dea067f7e0..bee619d642 100644 --- a/macros/latex/contrib/oberdiek/pdfcolparallel.dtx +++ b/macros/latex/contrib/oberdiek/pdfcolparallel.dtx @@ -63,7 +63,6 @@ % Installation: % TDS:tex/latex/oberdiek/pdfcolparallel.sty % TDS:doc/latex/oberdiek/pdfcolparallel.pdf -% TDS:doc/latex/oberdiek/test/pdfcolparallel-test1.tex % TDS:source/latex/oberdiek/pdfcolparallel.dtx % %<*ignore> @@ -131,10 +130,6 @@ and the derived files \file{pdfcolparallel.sty}{\from{pdfcolparallel.dtx}{package}}% % \usedir{doc/latex/oberdiek/test}% % \file{pdfcolparallel-test1.tex}{\from{pdfcolparallel.dtx}{test1}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{pdfcolparallel.xml}{\from{pdfcolparallel.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -171,21 +166,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{pdfcolparallel.drv} % @@ -797,105 +777,7 @@ and the derived files % \begin{macrocode} % % \end{macrocode} -% -% \section{Test} -% -% The test file is a modified version of the file that -% Alexander Hirsch has posted in \xnewsgroup{de.comp.text.tex}: -% \URL{``\link{\texttt{parallel.sty} und farbiger Text}''}^^A -% {https://groups.google.com/group/de.comp.text.tex/msg/6a759cf33bb071a5} -% \begin{macrocode} -%<*test1> -\AtEndDocument{% - \typeout{}% - \typeout{**************************************}% - \typeout{*** \space Check the PDF file manually! \space ***}% - \typeout{**************************************}% - \typeout{}% -} -\documentclass{article} -\usepackage{xcolor} -\usepackage{pdfcolparallel}[2016/05/16] - -\begin{document} - \color{green}% - Green% - \begin{Parallel}{0.47\textwidth}{0.47\textwidth}% - \ParallelLText{% - \textcolor{red}{% - Ein Absatz, der sich ueber zwei Zeilen erstrecken soll. % - Ein Absatz, der sich ueber zwei Zeilen erstrecken soll.% - }% - }% - \ParallelRText{% - \textcolor{blue}{% - Ein Absatz, der sich ueber zwei Zeilen erstrecken soll. % - Ein Absatz, der sich ueber zwei Zeilen erstrecken soll.% - }% - }% - \ParallelPar - \ParallelLText{% - Default % - \color{red}% - Ein Absatz, der sich ueber zwei Zeilen erstrecken soll. % - Ein Absatz, der sich ueber zwei Zeilen erstrecken soll.% - }% - \ParallelRText{% - Default % - \color{blue}% - Ein Absatz, der sich ueber zwei Zeilen erstrecken soll. % - Ein Absatz, der sich ueber zwei Zeilen erstrecken soll.% - }% - \ParallelPar - \ParallelLText{% - \begin{enumerate}% - \item left text, left text, left text, left text, % - left text, left text, left text, left text,% - \item left text, left text, left text, left text, % - left text, left text, left text, left text.% - \end{enumerate}% - }% - \ParallelRText{% - \begin{enumerate}% - \item right text, right text, right text, right text, % - right text, right text, right text, right text.% - \item right text, right text, right text, right text, % - right text, right text, right text, right text.% - \end{enumerate}% - }% - \end{Parallel}% - \begin{Parallel}[p]{\textwidth}{\textwidth}% - \ParallelLText{% - \textcolor{red}{% - Ein Absatz, der sich ueber zwei Zeilen erstrecken soll. % - Ein Absatz, der sich ueber zwei Zeilen erstrecken soll. % - Foo bar bla bla bla.% - }% - \par - Und noch ein Absatz.% - }% - \ParallelRText{% - \textcolor{blue}{% - Ein Absatz, der sich ueber zwei Zeilen erstrecken soll. % - Ein Absatz, der sich ueber zwei Zeilen erstrecken soll. % - Foo bar bla bla bla.% - }% - }% - \end{Parallel}% - \begin{Parallel}[p]{\textwidth}{\textwidth}% - \ParallelLText{% - \rule{1pt}{.98\textheight}\Huge g% - }% - \ParallelRText{% - \rule{1pt}{.98\textheight}y% - }% - \end{Parallel}% - Green% -\end{document} -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -944,7 +826,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % pdfcolparallel.sty & tex/latex/oberdiek/pdfcolparallel.sty\\ % pdfcolparallel.pdf & doc/latex/oberdiek/pdfcolparallel.pdf\\ -% test/pdfcolparallel-test1.tex & doc/latex/oberdiek/test/pdfcolparallel-test1.tex\\ % pdfcolparallel.dtx & source/latex/oberdiek/pdfcolparallel.dtx\\ % \end{tabular}^^A % }^^A @@ -1065,7 +946,7 @@ and the derived files % \bibitem{pdfcol} % Heiko Oberdiek: \textit{The \xpackage{pdfcol} package}; % 2007/09/09;\\ -% \CTAN{macros/latex/contrib/oberdiek/pdfcol.pdf}. +% \CTANpkg{pdfcol}. % % \end{thebibliography} % diff --git a/macros/latex/contrib/oberdiek/pdfcolparallel.pdf b/macros/latex/contrib/oberdiek/pdfcolparallel.pdf index 9102ac4ae9..60a21023c0 100644 Binary files a/macros/latex/contrib/oberdiek/pdfcolparallel.pdf and b/macros/latex/contrib/oberdiek/pdfcolparallel.pdf differ diff --git a/macros/latex/contrib/oberdiek/pdfcolparcolumns.dtx b/macros/latex/contrib/oberdiek/pdfcolparcolumns.dtx index 9584b4d2e8..a7e89d131a 100644 --- a/macros/latex/contrib/oberdiek/pdfcolparcolumns.dtx +++ b/macros/latex/contrib/oberdiek/pdfcolparcolumns.dtx @@ -63,7 +63,6 @@ % Installation: % TDS:tex/latex/oberdiek/pdfcolparcolumns.sty % TDS:doc/latex/oberdiek/pdfcolparcolumns.pdf -% TDS:doc/latex/oberdiek/test/pdfcolparcolumns-test1.tex % TDS:source/latex/oberdiek/pdfcolparcolumns.dtx % %<*ignore> @@ -131,10 +130,6 @@ and the derived files \file{pdfcolparcolumns.sty}{\from{pdfcolparcolumns.dtx}{package}}% % \usedir{doc/latex/oberdiek/test}% % \file{pdfcolparcolumns-test1.tex}{\from{pdfcolparcolumns.dtx}{test1}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{pdfcolparcolumns.xml}{\from{pdfcolparcolumns.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -171,21 +166,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{pdfcolparcolumns.drv} % @@ -525,60 +505,7 @@ and the derived files % \begin{macrocode} % % \end{macrocode} -% -% \section{Test} -% -% The test file is a modified version of the file that -% Donald Goodman has posted in \xnewsgroup{comp.text.tex}: ^^A -% \URL{``\link{Re: \xpackage{xcolor} glitches}''}^^A -% {https://groups.google.com/group/comp.text.tex/msg/8eda74ed292012bb} -% \begin{macrocode} -%<*test1> -\NeedsTeXFormat{LaTeX2e} -\AtEndDocument{% - \typeout{}% - \typeout{**************************************}% - \typeout{*** \space Check the PDF file manually! \space ***}% - \typeout{**************************************}% - \typeout{}% -} -\documentclass{article} -\usepackage{xcolor} -\usepackage{pdfcolparcolumns} - -\newcommand{\instruct}[1]{% - \noindent - \footnotesize - \textcolor{red}{#1}% -} - -\begin{document} - \begin{parcolumns}[colwidths={1=2.3in,2=2.3in},sloppy]{2}% - \colchunk[1]{% - \instruct{Et non dicitur versus} % - Fidelium anim\ae\ % - \instruct{% - sed immediate subiungitur antiphona finalis % - beat\ae\ Mari\ae\ Virginis% - } % - 100.% - }% - \colchunk[2]{% - \instruct{% - And the verse % - \textcolor{black}{May the souls of the faithful} % - is not said, but the final antiphon of the % - Blessed Virgin Mary, % - \textcolor{black}{100,} % - is immediately joined.% - }% - }% - \end{parcolumns}% -\end{document} -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -627,7 +554,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % pdfcolparcolumns.sty & tex/latex/oberdiek/pdfcolparcolumns.sty\\ % pdfcolparcolumns.pdf & doc/latex/oberdiek/pdfcolparcolumns.pdf\\ -% test/pdfcolparcolumns-test1.tex & doc/latex/oberdiek/test/pdfcolparcolumns-test1.tex\\ % pdfcolparcolumns.dtx & source/latex/oberdiek/pdfcolparcolumns.dtx\\ % \end{tabular}^^A % }^^A @@ -743,12 +669,12 @@ and the derived files % \bibitem{parcolumns} % Jonathan Sauer: \textit{The \xpackage{parcolumns} package}; % 2004/11/25;\\ -% \CTAN{macros/latex/contrib/sauerj/parcolumns.pdf}. +% \CTANpkg{parcolumns}. % % \bibitem{pdfcol} % Heiko Oberdiek: \textit{The \xpackage{pdfcol} package}; % 2007/09/09;\\ -% \CTAN{macros/latex/contrib/oberdiek/pdfcol.pdf}. +% \CTANpkg{pdfcol}. % % \end{thebibliography} % diff --git a/macros/latex/contrib/oberdiek/pdfcolparcolumns.pdf b/macros/latex/contrib/oberdiek/pdfcolparcolumns.pdf index 7d8325d939..c5515f1ea3 100644 Binary files a/macros/latex/contrib/oberdiek/pdfcolparcolumns.pdf and b/macros/latex/contrib/oberdiek/pdfcolparcolumns.pdf differ diff --git a/macros/latex/contrib/oberdiek/pdfcrypt.dtx b/macros/latex/contrib/oberdiek/pdfcrypt.dtx index b3da5015d0..e4681efa8c 100644 --- a/macros/latex/contrib/oberdiek/pdfcrypt.dtx +++ b/macros/latex/contrib/oberdiek/pdfcrypt.dtx @@ -132,10 +132,6 @@ and the derived files \file{pdfcrypt.drv}{\from{pdfcrypt.dtx}{driver}}% \usedir{tex/generic/oberdiek}% \file{pdfcrypt.sty}{\from{pdfcrypt.dtx}{package}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{pdfcrypt.xml}{\from{pdfcrypt.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -172,21 +168,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{pdfcrypt.drv} % diff --git a/macros/latex/contrib/oberdiek/pdfcrypt.pdf b/macros/latex/contrib/oberdiek/pdfcrypt.pdf index 2661342ae9..621d52f08c 100644 Binary files a/macros/latex/contrib/oberdiek/pdfcrypt.pdf and b/macros/latex/contrib/oberdiek/pdfcrypt.pdf differ diff --git a/macros/latex/contrib/oberdiek/pdfescape.dtx b/macros/latex/contrib/oberdiek/pdfescape.dtx index db40f23f4b..b405d7f7e1 100644 --- a/macros/latex/contrib/oberdiek/pdfescape.dtx +++ b/macros/latex/contrib/oberdiek/pdfescape.dtx @@ -68,12 +68,6 @@ % Installation: % TDS:tex/generic/oberdiek/pdfescape.sty % TDS:doc/latex/oberdiek/pdfescape.pdf -% TDS:doc/latex/oberdiek/test/pdfescape-test1.tex -% TDS:doc/latex/oberdiek/test/pdfescape-test2.tex -% TDS:doc/latex/oberdiek/test/pdfescape-test3.tex -% TDS:doc/latex/oberdiek/test/pdfescape-test4.tex -% TDS:doc/latex/oberdiek/test/pdfescape-test5.tex -% TDS:doc/latex/oberdiek/test/pdfescape-test6.tex % TDS:source/latex/oberdiek/pdfescape.dtx % %<*ignore> @@ -151,10 +145,6 @@ and the derived files % \file{pdfescape-test4.tex}{\from{pdfescape.dtx}{test4}}% % \file{pdfescape-test5.tex}{\from{pdfescape.dtx}{test5}}% % \file{pdfescape-test6.tex}{\from{pdfescape.dtx}{test6}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{pdfescape.xml}{\from{pdfescape.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -191,21 +181,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{pdfescape.drv} % @@ -1310,735 +1285,7 @@ $ \the\count\ltx@cclv % \begin{macrocode} % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input pdfescape.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Macro tests} -% -% \begin{macrocode} -%<*test2|test3|test4|test5> -\NeedsTeXFormat{LaTeX2e} -\makeatletter -% \end{macrocode} -% -% \subsection{Test with \cs{pdfescape...} commands} -% -% \begin{macrocode} -%<*test2> -\ProvidesFile{pdfescape-test2.tex}% - [2016/05/16 v1.14 Test with \string\pdfescape... commands]% -% -% \end{macrocode} -% -% \subsection{Test without \cs{pdfescape...}, with \eTeX} -% -% \begin{macrocode} -%<*test3> -\ProvidesFile{pdfescape-test3.tex}% - [2016/05/16 v1.14 Test without \string\pdfescape..., with e-TeX]% -% -% \end{macrocode} -% -% \subsection{Test without \cs{pdfescape...} and \eTeX} -% -% \begin{macrocode} -%<*test4> -\ProvidesFile{pdfescape-test4.tex}% - [2016/05/16 v1.14 Test without \string\pdfescape... and e-TeX]% -% -% \end{macrocode} -% -% \subsection{Test with \LuaTeX} -% -% \begin{macrocode} -%<*test5> -\ProvidesFile{pdfescape-test5.tex}% - [2016/05/16 v1.14 Test with LuaTeX]% -% -% \end{macrocode} -% -% \subsection{Check/ensure test preconditions} -% -% \subsubsection{Check \cs{pdfescape...}} -% -% \begin{macrocode} -%<*test2> -\@ifundefined{pdfescapehex}{% - \PackageError{pdfescape-test2}{% - Missing \string\pdfescape... commands% - }{Test aborted.}% - \stop -}{} -% -% \end{macrocode} -% \begin{macrocode} -%<*test3|test4> -\let\pdfescapehex\@undefined -\let\pdfunescapehex\@undefined -\let\pdfescapename\@undefined -\let\pdfescapestring\@undefined -% -% \end{macrocode} -% -% \subsubsection{Check \eTeX} -% -% \begin{macrocode} -%<*test3> -\@ifundefined{numexpr}{% - \PackageError{pdfescape-test3}{% - Missing \eTeX - }{Test aborted.}% - \stop -}{} -% -% \end{macrocode} -% Package \xpackage{qstest} uses \eTeX, thus \eTeX's features -% can only be disabled later during loading of package \xpackage{pdfescape}. -% -% \subsubsection{Check \LuaTeX} -% -% \begin{macrocode} -%<*test5> -\@ifundefined{directlua}{% - \PackageError{pdfescape-test5}{% - Missing LuaTeX% - }{Test aborted.}% - \stop -}{} -% -% \end{macrocode} -% -% \subsection{Common part} -% -% The files for testing uses the framework, provided by the -% new package \xpackage{qstest} of David Kastrup. -% \begin{macrocode} -\RequirePackage{qstest} -\IncludeTests{*} -\LogTests{log}{*}{*} - -\newcommand*{\ExpectVar}[2]{% - \ifx#1#2% - \else - \begingroup - \@onelevel@sanitize#1% - \@onelevel@sanitize#2% - \typeout{[#1] <> [#2]}% hash-ok - \endgroup - \fi - \Expect*{\ifx#1#2true\else false\fi}{true}% -} - -\makeatletter -\begingroup - \gdef\AllBytes{}% - \count@=0 % - \catcode0=12 % - \@whilenum\count@<256 \do{% - \lccode0=\count@ - \ifnum\count@=32 % - \xdef\AllBytes{\AllBytes\space}% - \else - \lowercase{% - \xdef\AllBytes{\AllBytes^^@}% - }% - \fi - \advance\count@ by 1 % - }% -\endgroup -\newcommand*{\AllBytesHex}{% - 000102030405060708090A0B0C0D0E0F% - 101112131415161718191A1B1C1D1E1F% - 202122232425262728292A2B2C2D2E2F% - 303132333435363738393A3B3C3D3E3F% - 404142434445464748494A4B4C4D4E4F% - 505152535455565758595A5B5C5D5E5F% - 606162636465666768696A6B6C6D6E6F% - 707172737475767778797A7B7C7D7E7F% - 808182838485868788898A8B8C8D8E8F% - 909192939495969798999A9B9C9D9E9F% - A0A1A2A3A4A5A6A7A8A9AAABACADAEAF% - B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF% - C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF% - D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF% - E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF% - F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF% -} -\@onelevel@sanitize\AllBytesHex -\expandafter\lowercase\expandafter{% - \expandafter\newcommand\expandafter*\expandafter\AllBytesHexLC - \expandafter{\AllBytesHex}% -} -\newcommand*{\AllBytesName}{} -\begingroup - \catcode`\#=12 % - \xdef\AllBytesName{% - #01#02#03#04#05#06#07#08#09#0A#0B#0C#0D#0E#0F% - #10#11#12#13#14#15#16#17#18#19#1A#1B#1C#1D#1E#1F% - #20!"#23$#25&'#28#29*+,-.#2F% - 0123456789:;#3C=#3E?% - @ABCDEFGHIJKLMNO% - PQRSTUVWXYZ#5B\@backslashchar#5D^_% - `abcdefghijklmno% - pqrstuvwxyz#7B|#7D\string~#7F% - #80#81#82#83#84#85#86#87#88#89#8A#8B#8C#8D#8E#8F% - #90#91#92#93#94#95#96#97#98#99#9A#9B#9C#9D#9E#9F% - #A0#A1#A2#A3#A4#A5#A6#A7#A8#A9#AA#AB#AC#AD#AE#AF% - #B0#B1#B2#B3#B4#B5#B6#B7#B8#B9#BA#BB#BC#BD#BE#BF% - #C0#C1#C2#C3#C4#C5#C6#C7#C8#C9#CA#CB#CC#CD#CE#CF% - #D0#D1#D2#D3#D4#D5#D6#D7#D8#D9#DA#DB#DC#DD#DE#DF% - #E0#E1#E2#E3#E4#E5#E6#E7#E8#E9#EA#EB#EC#ED#EE#EF% - #F0#F1#F2#F3#F4#F5#F6#F7#F8#F9#FA#FB#FC#FD#FE#FF% - }% -\endgroup -\@onelevel@sanitize\AllBytesName - -\newcommand*{\AllBytesString}{} -\begingroup - \def\|{|}% - \edef\%{\@percentchar}% - \catcode`\|=0 % - \catcode`\#=12 % - \catcode`\~=12 % - \catcode`\\=12 % - |xdef|AllBytesString{% - \000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017% - \020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037% - \040!"#$|%&'\(\)*+,-./% - 0123456789:;<=>?% - @ABCDEFGHIJKLMNO% - PQRSTUVWXYZ[\\]^_% - `abcdefghijklmno% - pqrstuvwxyz{||}~\177% - \200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217% - \220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237% - \240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257% - \260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277% - \300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317% - \320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337% - \340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357% - \360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377% - }% -|endgroup -\@onelevel@sanitize\AllBytesString - -%<*test4> -\let\org@detokenize\detokenize -\let\detokenize\@undefined -\let\org@numexpr\numexpr -\let\numexpr\@undefined -% -\RequirePackage{pdfescape} -%<*test4> -\let\detokenize\org@detokenize -\let\numexpr\org@numexpr -% - -\begin{qstest}{all-hex}{\AllBytes, escapehex} - \EdefEscapeHex\x{\AllBytes}% - \Expect*{\x}*{\AllBytesHex}% - \ExpectVar\x\AllBytesHex -\end{qstest} - -\begin{qstest}{all-unhex}{\AllBytesHex, unescapehex} - \EdefUnescapeHex\x{\AllBytesHex}% - \Expect*{\x}*{\AllBytes}% - \ExpectVar\x\AllBytes -\end{qstest} - -\begin{qstest}{all-unhex-lc}{\AllBytesHexLC, unescapehex, lowercase} - \EdefUnescapeHex\x{\AllBytesHexLC}% - \Expect*{\x}*{\AllBytes}% - \ExpectVar\x\AllBytes -\end{qstest} - -\begin{qstest}{unhex-incomplete}{unescapehex, incomplete} - \EdefUnescapeHex\x{4}% - \Expect*{\x}{@}% -\end{qstest} - -\begin{qstest}{unhex-space}{unescapehex, space} - \EdefUnescapeHex\x{20}% - \Expect*{\x}{ }% - \ExpectVar\x\space -\end{qstest} - -\begin{qstest}{unhex-spaces}{unescapehex, spaces} - \EdefUnescapeHex\x{204020204120}% - \def\y#1{% - \edef\z{#1\string @#1#1\string A#1}% - }\y{ }% - \Expect*{\x}*{\z}% - \ExpectVar\x\z -\end{qstest} - -\begin{qstest}{unhex-hash}{unescapehex, hash} - \catcode`\#=12 % - \EdefUnescapeHex\x{#20}% - \ExpectVar\x\space -\end{qstest} - -\begin{qstest}{unhex-invalid}{unescapehex, invalid} - \def\test#1#2{% - \EdefUnescapeHex\x{#1}% - \edef\y{#2}% - \@onelevel@sanitize\y - \ExpectVar\x\y - }% -%<*test2> - \edef\x{\pdfunescapehex{4X}}% - \edef\y{\string @}% - \ifx\x\y - \else - \def~{\space}% - \typeout{************************************}% - \typeout{* Your pdfTeX contains bug 777.~~~~*}% - \typeout{* This test is redefined as dummy, *}% - \typeout{* because it triggers the bug.~~~~~*}% - \typeout{************************************}% - \def\test#1#2{}% - \fi -% - \test{X}{}% - \test{XY}{}% - \test{XYZ}{}% - \test{A}{^^a0}% - \test{AX}{^^a0}% - \test{XA}{^^a0}% - \test{XXAXX}{^^a0}% -\end{qstest} - -\begin{qstest}{all-name}{\AllBytes, escapename} - \EdefEscapeName\x{\AllBytes}% - \Expect*{\x}*{\AllBytesName}% - \ExpectVar\x\AllBytesName -\end{qstest} - -\begin{qstest}{all-string}{\AllBytes, escapestring} - \EdefEscapeString\x{\AllBytes}% - \Expect*{\x}*{\AllBytesString}% - \ExpectVar\x\AllBytesString -\end{qstest} - -\begin{qstest}{uchexdigit}{unescape, uppercase hex digit} - \catcode`\@=11 % - \catcode0=12 % - \def\test#1#2{% - \uccode0=#1\relax - \uppercase{% - \def\x{^^@}% - }% - \Expect*{% - \ifcase\expandafter\PE@TestUcHexDigit\x - true% - \else - false% - \fi - }{#2}% - }% - \def\range#1#2#3{% - \count0=#1\relax - \loop - \ifnum\count0<#2\relax - \test{\count0}{#3}% - \advance\count0 by 1 % - \repeat - }% - \range{0}{47}{false}% - \range{48}{57}{true}% - \range{58}{64}{false}% - \range{65}{70}{true}% - \range{71}{255}{false}% -\end{qstest} - -\begin{qstest}{unescapename}{unescapename} - \def\test#1#2{% - \EdefUnescapeName\x{#1}% - \edef\y{#2}% - \@onelevel@sanitize\y - \ExpectVar\x\y - }% - \catcode`\#=12 % - \catcode0=12 % - \test{}{}% - \test{x}{x}% - \test{xy}{xy}% - \test{#}{#}% - \test{##}{##}% - \test{###}{###}% - \test{####}{####}% - \test{#x}{#x}% - \test{#xy}{#xy}% - \test{#1}{#1}% - \test{#40}{@}% - \test{#400}{@0}% - \test{#4x0}{#4x0}% - \test{#ab}{^^ab}% - \test{#00}{^^@}% - \test{x#40y#40z}{x@y@z}% - \test{#40#40#40#40}{@@@@}% - \test{a#x}{a#x}% - \test{a#xy}{a#xy}% - \test{a#1}{a#1}% - \test{a#40}{a@}% - \test{a#400}{a@0}% - \test{#20}{ }% - \test{a#20}{a }% - \test{a#20b}{a b}% - \test{a#20#20#20b}{a \space\space b}% -\end{qstest} - -\begin{qstest}{unescapestring}{unescapestring} - \def\test#1#2{% - \EdefUnescapeString\x{#1}% - \edef\y{#2}% - \@onelevel@sanitize\y - \ExpectVar\x\y - }% - \catcode0=12 % - \def\DefChar#1#2{% - \begingroup - \uccode0=#2\relax - \uppercase{\endgroup - \def#1{^^@}% - }% - }% - \DefChar\nul{0}% - \DefChar\one{1}% - \DefChar\bel{8}% - \DefChar\tab{9}% - \DefChar\lf{10}% - \DefChar\ff{12}% - \DefChar\cr{13}% - \DefChar\\{92}% - \test{}{}% - \test{a}{a}% - \test{\\}{}% - \test{\\\\}{\\}% - \test{\\\\y}{\\y}% - \test{\\000}{\nul}% - \test{\\b}{\bel}% - \test{\\t}{\tab}% - \test{\\n}{\lf}% - \test{\\f}{\ff}% - \test{\\r}{\cr}% - \test{\\(}{(}% - \test{\\)}{)}% - \test{\\040}{ }% - \test{\\100}{@}% - \test{\\40}{ }% - \test{\\1}{\one}% - \test{\\01}{\one}% - \test{\\001}{\one}% - \test{\\18}{\one8}% - \test{\\018}{\one8}% - \test{\\0018}{\one8}% - \test{x\\}{x}% - \test{x\\\\}{x\\}% - \test{x\\\\y}{x\\y}% - \test{x\\000}{x\nul}% - \test{x\\b}{x\bel}% - \test{x\\t}{x\tab}% - \test{x\\n}{x\lf}% - \test{x\\f}{x\ff}% - \test{x\\r}{x\cr}% - \test{x\\(}{x(}% - \test{x\\)}{x)}% - \test{x\\040}{x }% - \test{x\\100}{x@}% - \test{x\\40}{x }% - \test{x\\1}{x\one}% - \test{x\\01}{x\one}% - \test{x\\001}{x\one}% - \test{x\\18}{x\one8}% - \test{x\\018}{x\one8}% - \test{x\\0018}{x\one8}% - \test{\\b\\t\\n\\f\\r\\(\\)\\\\\\000\\040}{% - \bel\tab\lf\ff\cr()\\\nul\space - }% - \test{\\\lf}{}% - \test{x\\\lf}{x}% - \test{\cr}{\lf}% - \test{\cr\lf}{\lf}% - \test{\lf}{\lf}% - \test{\lf\cr}{\lf\lf}% - \test{x\cr}{x\lf}% - \test{x\cr\lf}{x\lf}% - \test{x\lf}{x\lf}% - \test{x\lf\cr}{x\lf\lf}% - \test{x\\\cr\lf y\cr}{xy\lf}% -% - \test{\\409}{ 9}% - \test{\\800}{800}% - \test{\\900}{900}% - \test{\\578}{/8}% - \test{\\477}{?}% - \test{\\377}{^^ff}% - \test{\\777}{^^ff}% - \test{\\7777}{^^ff7}% -\end{qstest} -\stop -% \end{macrocode} -% -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsubsection{Test for \hologo{iniTeX}} -% -% \begin{macrocode} -%<*test6> -\input pdfescape.sty\relax -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\^=7 % -\catcode`\@=11 % -% \end{macrocode} -% \begin{macrocode} -\begingroup - \catcode`\@=11 % - \countdef\count@=255 % - \def\space{ }% - \long\def\@whilenum#1\do #2{% - \ifnum #1\relax - #2\relax - \@iwhilenum{#1\relax#2\relax}% - \fi - }% - \long\def\@iwhilenum#1{% - \ifnum #1% - \expandafter\@iwhilenum - \else - \expandafter\ltx@gobble - \fi - {#1}% - }% - \gdef\AllBytes{}% - \count@=0 % - \catcode0=12 % - \@whilenum\count@<256 \do{% - \lccode0=\count@ - \ifnum\count@=32 % - \xdef\AllBytes{\AllBytes\space}% - \else - \lowercase{% - \xdef\AllBytes{\AllBytes^^@}% - }% - \fi - \advance\count@ by 1 % - }% -\endgroup -\def\AllBytesHex{% - 000102030405060708090A0B0C0D0E0F% - 101112131415161718191A1B1C1D1E1F% - 202122232425262728292A2B2C2D2E2F% - 303132333435363738393A3B3C3D3E3F% - 404142434445464748494A4B4C4D4E4F% - 505152535455565758595A5B5C5D5E5F% - 606162636465666768696A6B6C6D6E6F% - 707172737475767778797A7B7C7D7E7F% - 808182838485868788898A8B8C8D8E8F% - 909192939495969798999A9B9C9D9E9F% - A0A1A2A3A4A5A6A7A8A9AAABACADAEAF% - B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF% - C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF% - D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF% - E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF% - F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF% -} -\ltx@onelevel@sanitize\AllBytesHex -\expandafter\lowercase\expandafter{% - \expandafter\def\expandafter\AllBytesHexLC - \expandafter{\AllBytesHex}% -} -\begingroup - \catcode`\#=12 % - \xdef\AllBytesName{% - #01#02#03#04#05#06#07#08#09#0A#0B#0C#0D#0E#0F% - #10#11#12#13#14#15#16#17#18#19#1A#1B#1C#1D#1E#1F% - #20!"#23$#25&'#28#29*+,-.#2F% - 0123456789:;#3C=#3E?% - @ABCDEFGHIJKLMNO% - PQRSTUVWXYZ#5B\ltx@backslashchar#5D^_% - `abcdefghijklmno% - pqrstuvwxyz#7B|#7D\string~#7F% - #80#81#82#83#84#85#86#87#88#89#8A#8B#8C#8D#8E#8F% - #90#91#92#93#94#95#96#97#98#99#9A#9B#9C#9D#9E#9F% - #A0#A1#A2#A3#A4#A5#A6#A7#A8#A9#AA#AB#AC#AD#AE#AF% - #B0#B1#B2#B3#B4#B5#B6#B7#B8#B9#BA#BB#BC#BD#BE#BF% - #C0#C1#C2#C3#C4#C5#C6#C7#C8#C9#CA#CB#CC#CD#CE#CF% - #D0#D1#D2#D3#D4#D5#D6#D7#D8#D9#DA#DB#DC#DD#DE#DF% - #E0#E1#E2#E3#E4#E5#E6#E7#E8#E9#EA#EB#EC#ED#EE#EF% - #F0#F1#F2#F3#F4#F5#F6#F7#F8#F9#FA#FB#FC#FD#FE#FF% - }% -\endgroup -\ltx@onelevel@sanitize\AllBytesName -\edef\AllBytesFromName{\expandafter\ltx@gobble\AllBytes} - -\begingroup - \def\|{|}% - \edef\%{\ltx@percentchar}% - \catcode`\|=0 % - \catcode`\#=12 % - \catcode`\~=12 % - \catcode`\\=12 % - |xdef|AllBytesString{% - \000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017% - \020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037% - \040!"#$|%&'\(\)*+,-./% - 0123456789:;<=>?% - @ABCDEFGHIJKLMNO% - PQRSTUVWXYZ[\\]^_% - `abcdefghijklmno% - pqrstuvwxyz{||}~\177% - \200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217% - \220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237% - \240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257% - \260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277% - \300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317% - \320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337% - \340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357% - \360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377% - }% -|endgroup -\ltx@onelevel@sanitize\AllBytesString -% \end{macrocode} -% \begin{macrocode} -\def\msg#{\immediate\write16} -\def\Test#1#2#3{% - \begingroup - #1\TestResult{#2}% - \ifx\TestResult#3% - \else - \newlinechar=10 % - \msg{Expect:^^J#3}% - \msg{Result:^^J\TestResult}% - \errmessage{\string#2 -\string#1-> \string#3}% - \fi - \endgroup -} -\Test\EdefEscapeHex\AllBytes\AllBytesHex -\Test\EdefUnescapeHex\AllBytesHex\AllBytes -\Test\EdefEscapeName\AllBytes\AllBytesName -\Test\EdefUnescapeName\AllBytesName\AllBytesFromName -\Test\EdefEscapeString\AllBytes\AllBytesString -\Test\EdefUnescapeString\AllBytesString\AllBytes -% \end{macrocode} -% \begin{macrocode} -\csname @@end\endcsname\end -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -2087,12 +1334,6 @@ $ \the\count\ltx@cclv % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % pdfescape.sty & tex/generic/oberdiek/pdfescape.sty\\ % pdfescape.pdf & doc/latex/oberdiek/pdfescape.pdf\\ -% test/pdfescape-test1.tex & doc/latex/oberdiek/test/pdfescape-test1.tex\\ -% test/pdfescape-test2.tex & doc/latex/oberdiek/test/pdfescape-test2.tex\\ -% test/pdfescape-test3.tex & doc/latex/oberdiek/test/pdfescape-test3.tex\\ -% test/pdfescape-test4.tex & doc/latex/oberdiek/test/pdfescape-test4.tex\\ -% test/pdfescape-test5.tex & doc/latex/oberdiek/test/pdfescape-test5.tex\\ -% test/pdfescape-test6.tex & doc/latex/oberdiek/test/pdfescape-test6.tex\\ % pdfescape.dtx & source/latex/oberdiek/pdfescape.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/pdfescape.pdf b/macros/latex/contrib/oberdiek/pdfescape.pdf index 3f915ced82..4100374575 100644 Binary files a/macros/latex/contrib/oberdiek/pdfescape.pdf and b/macros/latex/contrib/oberdiek/pdfescape.pdf differ diff --git a/macros/latex/contrib/oberdiek/pdflscape.dtx b/macros/latex/contrib/oberdiek/pdflscape.dtx index 8743b2ebbb..e808b973e3 100644 --- a/macros/latex/contrib/oberdiek/pdflscape.dtx +++ b/macros/latex/contrib/oberdiek/pdflscape.dtx @@ -66,14 +66,6 @@ % Installation: % TDS:tex/latex/oberdiek/pdflscape.sty % TDS:doc/latex/oberdiek/pdflscape.pdf -% TDS:doc/latex/oberdiek/test/pdflscape-test1.tex -% TDS:doc/latex/oberdiek/test/pdflscape-test2.tex -% TDS:doc/latex/oberdiek/test/pdflscape-test3.tex -% TDS:doc/latex/oberdiek/test/pdflscape-test4.tex -% TDS:doc/latex/oberdiek/test/pdflscape-test5.tex -% TDS:doc/latex/oberdiek/test/pdflscape-test6.tex -% TDS:doc/latex/oberdiek/test/pdflscape-test6.txt -% TDS:doc/latex/oberdiek/test/ExtractRotate.java % TDS:source/latex/oberdiek/pdflscape.dtx % %<*ignore> @@ -152,7 +144,7 @@ and the derived files \nopreamble \nopostamble % \file{pdflscape-test6.txt}{\from{pdflscape.dtx}{result6}}% - \file{ExtractRotate.java}{\from{pdflscape.dtx}{ExtractRotate}}% +% \file{ExtractRotate.java}{\from{pdflscape.dtx}{ExtractRotate}}% % \usedir{source/latex/oberdiek/catalogue}% % \file{pdflscape.xml}{\from{pdflscape.dtx}{catalogue}}% } @@ -192,21 +184,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{pdflscape.drv} % @@ -617,216 +594,6 @@ and the derived files % % \end{macrocode} % -% \section{Test} -% -% \subsection{Driver detection tests} -% \begin{macrocode} -%<*test0> -\NeedsTeXFormat{LaTeX2e} -\documentclass{minimal} -\usepackage{qstest} -\IncludeTests{*} -\LogTests{log}{*}{*} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test1> -\usepackage{ifpdf} -\ifpdf - \def\ExpectDriver{pdftex}% -\fi -\usepackage{ifxetex}% -\ifxetex - \def\ExpectDriver{dvipdfm}% -\fi -\usepackage{pdflscape}[2016/05/14] -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test2> -\def\ExpectDriver{pdftex} -\usepackage[pdftex]{pdflscape}[2016/05/14] -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test3> -\def\ExpectDriver{dvipdfm} -\usepackage[dvipdfmx]{pdflscape}[2016/05/14] -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test4> -\def\ExpectDriver{dvips} -\usepackage[dvipsone]{graphics} -\usepackage{pdflscape}[2016/05/14] -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test0> -\begin{document} -\begin{qstest}{driver}{driver} - \makeatletter - \Expect*{\PLS@driver}*{\ExpectDriver}% -\end{qstest} -\end{document} -% -% \end{macrocode} -% -% \subsection{Test for \cs{PLS@CheckAngle}} -% -% \begin{macrocode} -%<*test5> -\NeedsTeXFormat{LaTeX2e} -\documentclass{minimal} -\usepackage{qstest} -\IncludeTests{*} -\LogTests{log}{*}{*} -\usepackage{pdflscape}[2016/05/14] -\begin{document} -\begin{qstest}{checkangle}{checkangle} - \makeatletter - \def\Result{% - \def\ResultString{\the\count@}% - }% - \def\PackageError#1#2#3{% - \def\Result{% - \def\ResultString{error}% - }% - }% - \def\Test#1#2{% - \begingroup - \PLS@CheckAngle{#1}% - \Result - \Expect*{\ResultString}{#2}% - \endgroup - }% - \Test{0}{0}% - \Test{90}{90}% - \Test{180}{180}% - \Test{270}{270}% - \Test{360}{0}% - \Test{450}{90}% - \Test{540}{180}% - \Test{630}{270}% - \Test{720}{0}% - \Test{3600}{0}% - \Test{3690}{90}% - \Test{-90}{270}% - \Test{-180}{180}% - \Test{-270}{-90}% - \Test{-360}{0}% - \Test{-450}{270}% - \Test{540}{180}% - \Test{-630}{90}% - \Test{-720}{0}% - \Test{-3600}{0}% - \Test{-3690}{270}% - \Test{1}{error}% - \Test{-1}{error}% - \Test{123}{error}% -\end{qstest} -\end{document} -% -% \end{macrocode} -% -% \subsection{Test for rotate} -% -% \begin{macrocode} -%<*test6> -\NeedsTeXFormat{LaTeX2e} -\documentclass{article} -\usepackage{pdflscape}[2016/05/14] -\begin{document} -\section{Portrait page} -\begin{landscape} -\section{Landscape page} -Foo bar foo bar foo bar foo bar foo bar -foo bar foo bar foo bar foo bar foo bar. -\end{landscape} -\section{Portrait Section} -Foo bar -\begin{landscape} -\section{Again Landscape Section} -\newpage -\section{Second Page of Landscape Section} -\end{landscape} -\section{Second Last Portrait Page} -\newpage -\section{Last Portrait Page} -\end{document} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*result6> -/Page 1 /Rotate 0 -/Page 2 /Rotate 90 -/Page 3 /Rotate 0 -/Page 4 /Rotate 90 -/Page 5 /Rotate 90 -/Page 6 /Rotate 0 -/Page 7 /Rotate 0 -% -% \end{macrocode} -% -% \begin{macrocode} -%<*ExtractRotate> -/** - * ExtractRotate.java - * - * Copyright (C) 2007 by Heiko Oberdiek - * - * Requires: PDFBox (http://www.pdfbox.org/) - * - * Syntax: java ExtractRotate - * - * The is analyzed and for each page its rotation - * setting is printed in the . Example: - * /Page 1 /Rotate 0 - * /Page 2 /Rotate 90 - */ -import java.io.FileInputStream; -import java.io.FileWriter; -import org.pdfbox.pdfparser.PDFParser; -import org.pdfbox.pdmodel.PDDocument; -import org.pdfbox.pdmodel.PDDocumentCatalog; -import org.pdfbox.pdmodel.PDPage; - -public class ExtractRotate { - - public static void main(String[] args) { - try { - String infile = args[0]; - String outfile = args[1]; - FileWriter out = new FileWriter(outfile); - PDFParser parser = - new PDFParser(new FileInputStream(infile)); - parser.parse(); - PDDocument document = parser.getPDDocument(); - PDDocumentCatalog catalog = document.getDocumentCatalog(); - int i = 0; - for (Object page: catalog.getAllPages()) { - i++; - out.write("/Page " + i + " " + "/Rotate " - + ((PDPage)page).findRotation() + "\n"); - } - document.close(); - out.close(); - } - catch (Exception e) { - e.printStackTrace(); - System.exit(1); - } - } -} -% -% \end{macrocode} -% % \section{Installation} % % \subsection{Download} @@ -876,12 +643,6 @@ public class ExtractRotate { % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % pdflscape.sty & tex/latex/oberdiek/pdflscape.sty\\ % pdflscape.pdf & doc/latex/oberdiek/pdflscape.pdf\\ -% test/pdflscape-test1.tex & doc/latex/oberdiek/test/pdflscape-test1.tex\\ -% test/pdflscape-test2.tex & doc/latex/oberdiek/test/pdflscape-test2.tex\\ -% test/pdflscape-test3.tex & doc/latex/oberdiek/test/pdflscape-test3.tex\\ -% test/pdflscape-test4.tex & doc/latex/oberdiek/test/pdflscape-test4.tex\\ -% test/pdflscape-test5.tex & doc/latex/oberdiek/test/pdflscape-test5.tex\\ -% test/pdflscape-test6.tex & doc/latex/oberdiek/test/pdflscape-test6.tex\\ % test/pdflscape-test6.txt & doc/latex/oberdiek/test/pdflscape-test6.txt\\ % test/ExtractRotate.java & doc/latex/oberdiek/test/ExtractRotate.java\\ % pdflscape.dtx & source/latex/oberdiek/pdflscape.dtx\\ diff --git a/macros/latex/contrib/oberdiek/pdflscape.pdf b/macros/latex/contrib/oberdiek/pdflscape.pdf index 6af1d671f2..39e9c4ff80 100644 Binary files a/macros/latex/contrib/oberdiek/pdflscape.pdf and b/macros/latex/contrib/oberdiek/pdflscape.pdf differ diff --git a/macros/latex/contrib/oberdiek/pdfrender.dtx b/macros/latex/contrib/oberdiek/pdfrender.dtx index 395d21ae50..7558ad61ac 100644 --- a/macros/latex/contrib/oberdiek/pdfrender.dtx +++ b/macros/latex/contrib/oberdiek/pdfrender.dtx @@ -68,11 +68,6 @@ % Installation: % TDS:tex/generic/oberdiek/pdfrender.sty % TDS:doc/latex/oberdiek/pdfrender.pdf -% TDS:doc/latex/oberdiek/test/pdfrender-test1.tex -% TDS:doc/latex/oberdiek/test/pdfrender-test2.tex -% TDS:doc/latex/oberdiek/test/pdfrender-test3.tex -% TDS:doc/latex/oberdiek/test/pdfrender-test4.tex -% TDS:doc/latex/oberdiek/test/pdfrender-test5.tex % TDS:source/latex/oberdiek/pdfrender.dtx % %<*ignore> @@ -149,10 +144,6 @@ and the derived files % \file{pdfrender-test3.tex}{\from{pdfrender.dtx}{test3}}% % \file{pdfrender-test4.tex}{\from{pdfrender.dtx}{test4}}% % \file{pdfrender-test5.tex}{\from{pdfrender.dtx}{test5}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{pdfrender.xml}{\from{pdfrender.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -191,21 +182,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{pdfrender.drv} % @@ -1383,286 +1359,7 @@ and the derived files \PdfRender@AtEnd% % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input pdfrender.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Simple test file} -% -% \begin{macrocode} -%<*test2> -\NeedsTeXFormat{LaTeX2e} -\ProvidesFile{pdfrender-test2.tex}[2018/11/01] -\documentclass{article} -\usepackage{color} -\usepackage{pdfrender}[2018/11/01] -\begin{document} -Hello World -\newpage -Start -\textpdfrender{% - TextRenderingMode=1,% - LineWidth=.1,% - LineCapStyle=2,% - LineJoinStyle=1,% - MiterLimit=1.2,% - LineDashPattern=[2 2]0,% - RenderingIntent=Saturation,% -}{Hello\newpage World} -Stop -\par -\newlength{\LineWidth} -\setlength{\LineWidth}{.5pt} -Start -\textpdfrender{% - FillColor=yellow,% - StrokeColor=[cmyk]{1,.5,0,0},% - TextRenderingMode=FillStroke,% - LineWidth=.5\LineWidth,% - LineCapStyle=Round,% - LineJoinStyle=Bevel,% -}{Out-\par\newpage line} -Stop -\end{document} -% -% \end{macrocode} -% -% \subsection{Further tests} -% -% Robustness and bookmarks. -% \begin{macrocode} -%<*test3> -\NeedsTeXFormat{LaTeX2e} -\ProvidesFile{pdfrender-test3.tex}[2018/11/01] -\documentclass{article} -\usepackage{pdfrender}[2018/11/01] -\usepackage{hyperref} -\usepackage{bookmark} -\begin{document} -\tableofcontents -\section{% - \textpdfrender{% - TextRenderingMode=1,% - LineCapStyle=2,% - LineJoinStyle=1,% - MiterLimit=1.2,% - LineDashPattern=[2 2]0,% - RenderingIntent=Saturation,% - }{Hello World}% -} -\end{document} -% -% \end{macrocode} -% -% Color algorithm if \cs{pdfmatch} is not available. -% \begin{macrocode} -%<*test4> -\NeedsTeXFormat{LaTeX2e} -\ProvidesFile{pdfrender-test4.tex}[2018/11/01] -\documentclass[12pt]{article} -\usepackage{pdfrender}[2018/11/01] -\usepackage{color} -\usepackage{qstest} -\IncludeTests{*} -\LogTests{log}{*}{*} -\makeatletter -\newcommand*{\CheckColor}[1]{% - \Expect{#1}*{\current@color}% -} -\makeatother -\begin{document} - \begin{qstest}{color}{color}% - \CheckColor{0 g 0 G}% - \Huge\bfseries - \noindent - \textpdfrender{% - TextRenderingMode=2,% - LineWidth=.5,% - FillColor=yellow,% - StrokeColor=blue,% - }{% - \CheckColor{0 0 1 0 k 0 0 1 RG}% - Blue(Yellow)\\% - \textpdfrender{% - FillColor=green,% - }{% - \CheckColor{0 1 0 rg 0 0 1 RG}% - Blue(Green)% - }\\% - \CheckColor{0 0 1 0 k 0 0 1 RG}% - Blue(Yellow)\\% - \textpdfrender{% - StrokeColor=red,% - }{% - \CheckColor{0 0 1 0 k 1 0 0 RG}% - Red(Yellow)% - }\\% - \CheckColor{0 0 1 0 k 0 0 1 RG}% - Blue(Yellow) % - }% - \end{qstest}% - \begin{qstest}{colorlast}{colorlast}% - \makeatletter - \def\Test#1#2#3{% - \begingroup - \def\current@color{#1}% - \textpdfrender{#2}{% - \CheckColor{#3}% - }% - \endgroup - }% - \Test{1 g 0 0 1 RG 0 0 1 0 k 0.5 G}% - {StrokeColor=green}% - {0 0 1 0 k 0 1 0 RG}% - \Test{1 g 0 0 1 RG 0 0 1 0 k 0.5 G}% - {FillColor=red}% - {1 0 0 rg 0.5 G}% - \end{qstest}% -\end{document} -% -% \end{macrocode} -% -% \subsection{Compatibility with \plainTeX} -% -% \begin{macrocode} -%<*test5> -\input luatex85.sty -\pdfoutput=1 % -\hsize=6.5in -\vsize=8.9in -\pdfpagewidth=\hsize -\pdfpageheight=\vsize -\parfillskip=0pt plus 1fil\relax -\input pdfrender.sty\relax -\catcode`\{=1 % -\catcode`\}=2 % -\let\OrgMakeFootLine\makefootline -\def\makefootline{% - \begingroup\normalcolor\OrgMakeFootLine\endgroup -} -\font\f=ec-lmr10 scaled 3000\relax -\f -Before % -\textpdfrender{% - TextRenderingMode=1,% - LineWidth=.1,% -}{Hello\par\vfill\penalty-10000 World} % -After % -\par -\vfill -\penalty-10000 % -\csname @@end\endcsname\end -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -1711,11 +1408,6 @@ After % % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % pdfrender.sty & tex/generic/oberdiek/pdfrender.sty\\ % pdfrender.pdf & doc/latex/oberdiek/pdfrender.pdf\\ -% test/pdfrender-test1.tex & doc/latex/oberdiek/test/pdfrender-test1.tex\\ -% test/pdfrender-test2.tex & doc/latex/oberdiek/test/pdfrender-test2.tex\\ -% test/pdfrender-test3.tex & doc/latex/oberdiek/test/pdfrender-test3.tex\\ -% test/pdfrender-test4.tex & doc/latex/oberdiek/test/pdfrender-test4.tex\\ -% test/pdfrender-test5.tex & doc/latex/oberdiek/test/pdfrender-test5.tex\\ % pdfrender.dtx & source/latex/oberdiek/pdfrender.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/pdfrender.pdf b/macros/latex/contrib/oberdiek/pdfrender.pdf index 1852c870e2..5379dd894b 100644 Binary files a/macros/latex/contrib/oberdiek/pdfrender.pdf and b/macros/latex/contrib/oberdiek/pdfrender.pdf differ diff --git a/macros/latex/contrib/oberdiek/picture.dtx b/macros/latex/contrib/oberdiek/picture.dtx index 956110084e..ba4121a603 100644 --- a/macros/latex/contrib/oberdiek/picture.dtx +++ b/macros/latex/contrib/oberdiek/picture.dtx @@ -131,10 +131,6 @@ and the derived files \file{picture.sty}{\from{picture.dtx}{package}}% \usedir{doc/latex/oberdiek}% \file{picture-example.tex}{\from{picture.dtx}{example}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{picture.xml}{\from{picture.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -171,21 +167,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{picture.drv} % diff --git a/macros/latex/contrib/oberdiek/picture.pdf b/macros/latex/contrib/oberdiek/picture.pdf index 18a51bc158..8d58447aa0 100644 Binary files a/macros/latex/contrib/oberdiek/picture.pdf and b/macros/latex/contrib/oberdiek/picture.pdf differ diff --git a/macros/latex/contrib/oberdiek/pmboxdraw.dtx b/macros/latex/contrib/oberdiek/pmboxdraw.dtx index ef4e491f31..480eac755d 100644 --- a/macros/latex/contrib/oberdiek/pmboxdraw.dtx +++ b/macros/latex/contrib/oberdiek/pmboxdraw.dtx @@ -64,7 +64,6 @@ % TDS:tex/latex/oberdiek/pmboxdraw.sty % TDS:tex/latex/oberdiek/pmboxdrawenc.dfu % TDS:doc/latex/oberdiek/pmboxdraw.pdf -% TDS:doc/latex/oberdiek/test/pmboxdraw-test1.tex % TDS:source/latex/oberdiek/pmboxdraw.dtx % %<*ignore> @@ -133,10 +132,6 @@ and the derived files \file{pmboxdrawenc.dfu}{\from{pmboxdraw.dtx}{utf8}}% % \usedir{doc/latex/oberdiek/test}% % \file{pmboxdraw-test1.tex}{\from{pmboxdraw.dtx}{test1}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{pmboxdraw.xml}{\from{pmboxdraw.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -181,21 +176,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{pmboxdraw.drv} % @@ -5266,123 +5246,7 @@ $ \kern.5\pmbd@C % \begin{macrocode} % % \end{macrocode} -% -% \section{Test} -% -% \begin{macrocode} -%<*test1> -\def\LoadCommand{\RequirePackage{pmboxdraw}[2019/02/28]} -% -% \end{macrocode} -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input pmboxdraw.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -5432,7 +5296,6 @@ $ \kern.5\pmbd@C % pmboxdraw.sty & tex/latex/oberdiek/pmboxdraw.sty\\ % pmboxdrawenc.dfu & tex/latex/oberdiek/pmboxdrawenc.dfu\\ % pmboxdraw.pdf & doc/latex/oberdiek/pmboxdraw.pdf\\ -% test/pmboxdraw-test1.tex & doc/latex/oberdiek/test/pmboxdraw-test1.tex\\ % pmboxdraw.dtx & source/latex/oberdiek/pmboxdraw.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/pmboxdraw.pdf b/macros/latex/contrib/oberdiek/pmboxdraw.pdf index df43c95699..26299b48cd 100644 Binary files a/macros/latex/contrib/oberdiek/pmboxdraw.pdf and b/macros/latex/contrib/oberdiek/pmboxdraw.pdf differ diff --git a/macros/latex/contrib/oberdiek/protecteddef.dtx b/macros/latex/contrib/oberdiek/protecteddef.dtx index 2ddc5c9cad..cff42cccf7 100644 --- a/macros/latex/contrib/oberdiek/protecteddef.dtx +++ b/macros/latex/contrib/oberdiek/protecteddef.dtx @@ -66,8 +66,6 @@ % Installation: % TDS:tex/generic/oberdiek/protecteddef.sty % TDS:doc/latex/oberdiek/protecteddef.pdf -% TDS:doc/latex/oberdiek/test/protecteddef-test1.tex -% TDS:doc/latex/oberdiek/test/protecteddef-test2.tex % TDS:source/latex/oberdiek/protecteddef.dtx % %<*ignore> @@ -139,10 +137,6 @@ and the derived files % \usedir{doc/latex/oberdiek/test}% % \file{protecteddef-test1.tex}{\from{protecteddef.dtx}{test1}}% % \file{protecteddef-test2.tex}{\from{protecteddef.dtx}{test2}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{protecteddef.xml}{\from{protecteddef.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -179,21 +173,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{protecteddef.drv} % @@ -553,275 +532,7 @@ and the derived files % \begin{macrocode} % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input protecteddef.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Test without \hologo{LaTeX} and \cs{protected}} -% -% \begin{macrocode} -%<*test2> -\errorcontextlines=10000 % -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname RequirePackage\endcsname\relax - \input protecteddef.sty\relax - \catcode`\{=1 % - \catcode`\}=2 % - \catcode`\#=6 % -\else - \RequirePackage{protecteddef}[2016/05/16]% -\fi -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname protected\endcsname\relax - \let\pdef\def -\else - \def\pdef{\protected\def}% -\fi -\def\msg#{\immediate\write16} -\countdef\errcount=2 % -\long\def\BeginCheck#1\ProtectedDef#2\EndCheck{% - \begingroup - \toks0={\ProtectedDef#2}% - \msg{<<\the\toks0>>}% - \endgroup - \setbox0=\hbox{% - #1% - \ProtectedDef#2% - \check\foo - }% - \ifdim\wd0=0pt\relax - \else - \errmessage{[Definition] Unwanted spaces?!}% - \fi - \setbox0=\hbox{% - \def\fooinitial{XYZ}% - \let\foo\fooinitial - \errcount=0 % - \expandafter\def\csname @PackageError\endcsname##1##2##3{% - \advance\errcount by 1 % - }% - \expandafter\def\csname @notdefinable\endcsname{% - \advance\errcount by 1 % - }% - \ProtectedDef#2% - \ifnum\errcount=1 % - \else - \errmessage{1 error expected, but found: \the\errcount}% - \fi - \ifx\foo\fooinitial - \else - \def\space{ }% - \errmessage{\string\foo\space is overwritten}% - \fi - }% - \ifdim\wd0=0pt\relax - \else - \errmessage{[Error] Unwanted spaces?!}% - \fi -} -\chardef\DeclareVersion=0 % -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname protected\endcsname\relax - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname DeclareRobustCommand\endcsname\relax - \else - \chardef\DeclareVersion=1 % - \fi -\fi -\ifnum\DeclareVersion=0 % - \def\check#1{% - \ifx\cmp#1% - \msg{* Test passed.}% - \else - \msg{}% - \msg{[\meaning#1]}% - \msg{[\meaning\cmp]}% - \errmessage{Test failed!}% - \fi - }% -\else - \def\check#1{% - \begingroup - \escapechar=-1 % - \edef\x{\endgroup - \def\noexpand\cs/{\string#1}% - }\x - \edef\CMP{% - \noexpand\protect - \expandafter\noexpand\csname\cs/ \endcsname - }% - \ifx\CMP#1% - \expandafter\ifx\csname\cs/ \endcsname\cmp - \msg{Test passed.}% - \else - \msg{}% - \msg{[\expandafter\meaning\csname\cs/ \endcsname]}% - \msg{[\meaning\cmp]}% - \errmessage{Test failed!}% - \fi - \else - \msg{}% - \msg{[\meaning#1]}% - \msg{[\meaning\CMP]}% - \errmessage{Test failed!}% - \fi - }% -\fi - -\tracingmacros=1 - -\BeginCheck - \pdef\cmp{}% - \ProtectedDef*\foo{}% -\EndCheck - -\BeginCheck - \pdef\cmp{}% - \ProtectedDef*\foo[0]{}% -\EndCheck - -\BeginCheck - \pdef\cmp#1{<#1>}% - \ProtectedDef*\foo[1]{<#1>}% -\EndCheck - -\BeginCheck - \pdef\cmp(#1){<#1>}% - \ProtectedDef*\foo(#1){<#1>}% -\EndCheck - -\BeginCheck - \long\pdef\cmp{}% - \ProtectedDef\foo{}% -\EndCheck - -\BeginCheck - \long\pdef\cmp{}% - \ProtectedDef\foo[0]{}% -\EndCheck - -\BeginCheck - \long\pdef\cmp#1{<#1>}% - \ProtectedDef\foo[1]{<#1>}% -\EndCheck - -\BeginCheck - \long\pdef\cmp(#1){<#1>}% - \ProtectedDef\foo(#1){<#1>}% -\EndCheck - -\csname @@end\endcsname\end -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -870,8 +581,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % protecteddef.sty & tex/generic/oberdiek/protecteddef.sty\\ % protecteddef.pdf & doc/latex/oberdiek/protecteddef.pdf\\ -% test/protecteddef-test1.tex & doc/latex/oberdiek/test/protecteddef-test1.tex\\ -% test/protecteddef-test2.tex & doc/latex/oberdiek/test/protecteddef-test2.tex\\ % protecteddef.dtx & source/latex/oberdiek/protecteddef.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/protecteddef.pdf b/macros/latex/contrib/oberdiek/protecteddef.pdf index d3ae88abbd..09203fa0d1 100644 Binary files a/macros/latex/contrib/oberdiek/protecteddef.pdf and b/macros/latex/contrib/oberdiek/protecteddef.pdf differ diff --git a/macros/latex/contrib/oberdiek/refcount.dtx b/macros/latex/contrib/oberdiek/refcount.dtx index 3a2c961431..b70bd4799e 100644 --- a/macros/latex/contrib/oberdiek/refcount.dtx +++ b/macros/latex/contrib/oberdiek/refcount.dtx @@ -64,11 +64,6 @@ % Installation: % TDS:tex/latex/oberdiek/refcount.sty % TDS:doc/latex/oberdiek/refcount.pdf -% TDS:doc/latex/oberdiek/test/refcount-test1.tex -% TDS:doc/latex/oberdiek/test/refcount-test2.tex -% TDS:doc/latex/oberdiek/test/refcount-test3.tex -% TDS:doc/latex/oberdiek/test/refcount-test4.tex -% TDS:doc/latex/oberdiek/test/refcount-test5.tex % TDS:source/latex/oberdiek/refcount.dtx % %<*ignore> @@ -141,10 +136,6 @@ and the derived files % \file{refcount-test3.tex}{\from{refcount.dtx}{test3}}% % \file{refcount-test4.tex}{\from{refcount.dtx}{test3,test4}}% % \file{refcount-test5.tex}{\from{refcount.dtx}{test5}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{refcount.xml}{\from{refcount.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -181,21 +172,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{refcount.drv} % @@ -899,416 +875,7 @@ and the derived files \rc@AtEnd% % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input refcount.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Macro tests} -% -% \begin{macrocode} -%<*test2> -\errorcontextlines=10000 % -\showboxbreadth=10000 % -\showboxdepth=10000 % -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname RequirePackage\endcsname\relax - \input refcount.sty\relax -\else - \RequirePackage{refcount}[2016/05/16]% -\fi -\catcode`\@=11 % -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname @onelevel@sanitize\endcsname\relax - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname detokenize\endcsname\relax - \def\strip@prefix#1->{}% - \def\@onelevel@sanitize#1{% - \edef#1{% - \expandafter\strip@prefix\meaning#1% - }% - }% - \else - \def\@onelevel@sanitize#1{% - \edef#1{% - \detokenize\expandafter{#1}% - }% - }% - \fi -\fi -\def\msg#{\immediate\write16} -\def\empty{} -\def\space{ } -% \end{macrocode} -% \begin{macrocode} -\def\r@foo{{\empty 1}{\empty 2}} -\long\def\test#1#2{% - \begingroup - \setbox0=\hbox{% - \def\TestTask{#1}% - \@onelevel@sanitize\TestTask - \msg{* \TestTask}% - \expandafter\expandafter\expandafter\def - \expandafter\expandafter\expandafter\TestResult - \expandafter\expandafter\expandafter{% - #1% - }% - \def\TestExpected{#2}% - \ifx\TestResult\TestExpected - \msg{ \space ok.}% - \else - \@onelevel@sanitize\TestResult - \@onelevel@sanitize\TestExpected - \msg{ \space Result: \space\space[\TestResult]}% - \msg{ \space Expected: [\TestExpected]}% - \errmessage{Test failed!}% - \fi - }% - \ifdim\wd0=0pt % - \else - \showbox0 % - \fi - \endgroup -} -\test{\getrefnumber{foo}}{\empty 1} -\test{\getpagerefnumber{foo}}{\empty 2} -\test{\getrefbykeydefault{foo}{}{\empty default}}{\empty 1} -\test{\getrefbykeydefault{foo}{page}{\empty default}}{\empty 2} -\test{\getrefbykeydefault{foo}{name}{\empty default}}{\empty default} -\test{\getrefbykeydefault{foo}{anchor}{\empty default}}{\empty default} -\test{\getrefbykeydefault{foo}{url}{\empty default}}{\empty default} -\test{\getrefbykeydefault{foo}{title}{\empty default}}{\empty default} -\msg{} -\def\r@foo{{}{}{}{}{}{}{}{}{}{}} -\def\Test#1#2\\{% - \test{#1{foo}#2}{}% -} -\def\TestGroup{% - \Test\getrefnumber\\% - \Test\getpagerefnumber\\% - \Test\getrefbykeydefault{}{}\\% - \Test\getrefbykeydefault{page}{}\\% - \Test\getrefbykeydefault{anchor}{}\\% - \Test\getrefbykeydefault{name}{}\\% - \Test\getrefbykeydefault{url}{}\\% -} -\TestGroup -\Test\getrefbykeydefault{title}{}\\% -\msg{} -\def\r@foo{\par\par\par\par\par\par\par\par} -\long\def\Test#1#2\\{% - \test{#1{foo}#2}{\par}% -} -\TestGroup -\test{\getrefbykeydefault{title}{}{}}{} -\msg{} -\def\r@foo{{ }{ }{ }{ }{ }} -\def\Test#1#2\\{% - \test{#1{foo}#2}{ }% -} -\TestGroup -\msg{} -\long\def\TestDefault#1{% - \begingroup - \setrefcountdefault{#1}% - \test{\getrefnumber{foo}}{#1}% - \test{\getpagerefnumber{foo}}{#1}% - \endgroup -} -\def\TestDefaultX{% - \TestDefault{}% - \TestDefault{\par}% - \TestDefault{ }% - \TestDefault{\space}% -} -\let\r@foo\@undefined -\TestDefaultX -\let\r@foo\relax -\TestDefaultX -\def\r@foo{} -\TestDefaultX -% \end{macrocode} -% \begin{macrocode} -\msg{} -\long\def\Test#1#2#3#4{% - \begingroup - \def\TestTask{#1}% - \@onelevel@sanitize\TestTask - \msg{* [\TestTask]}% - \edef\TestResultA{\IfRefUndefinedExpandable{#1}{#2}{#3}}% - \IfRefUndefinedBabel{#1}{% - \def\TestResultB{#2}% - }{% - \def\TestResultB{#3}% - }% - \def\TestExpected{#4}% - \ifx\TestResultA\TestExpected - \msg{ \space ok.}% - \else - \begingroup - \@onelevel@sanitize\TestResultA - \@onelevel@sanitize\TestExpected - \msg{ \space Result: \space\space[\TestResultA]}% - \msg{ \space Expected: [\TestExpected]}% - \errmessage{Test failed!}% - \endgroup - \fi - \ifx\TestResultB\TestExpected - \msg{ \space ok.}% - \else - \begingroup - \@onelevel@sanitize\TestResultB - \@onelevel@sanitize\TestExpected - \msg{ \space Result: \space\space[\TestResultB]}% - \msg{ \space Expected: [\TestExpected]}% - \errmessage{Test failed!}% - \endgroup - \fi - \endgroup -} -\begingroup - \def\r@foo{{}{}}% - \let\r@bar\@undefined - \let\r@xyz\relax - \Test{foo}{true}{false}{false}% - \Test{bar}{true}{false}{true}% - \Test{xyz}{true}{false}{true}% -\endgroup -% \end{macrocode} -% \begin{macrocode} -\csname @@end\endcsname\end -% -% \end{macrocode} -% \subsection{Test with package \xpackage{titleref}} -% -% \begin{macrocode} -%<*test3> -\NeedsTeXFormat{LaTeX2e} -\documentclass{article} -\usepackage{refcount}[2016/05/16] -%\usepackage{nameref} -\usepackage{titleref} -\begin{document} -\section{Hello World} -\label{sec:hello} -\section{\hbox{xy}} -\label{sec:foo} -% -\makeatletter -\@ifundefined{r@sec:hello}{% - \typeout{==> Compile twice!}% -}{% - \def\test#1#2{% - \begingroup - \def\TestTask{#1}% - \@onelevel@sanitize\TestTask - \typeout{* \TestTask}% - \expandafter\expandafter\expandafter\def - \expandafter\expandafter\expandafter\TestResult - \expandafter\expandafter\expandafter{% - #1% - }% - \def\TestExpected{#2}% - \ifx\TestResult\TestExpected - \typeout{ \space ok.}% - \else - \@onelevel@sanitize\TestResult - \@onelevel@sanitize\TestExpected - \typeout{ \space Result: \space\space[\TestResult]}% - \typeout{ \space Expected: [\TestExpected]}% - \errmessage{Test failed!}% - \fi - \endgroup - }% - \test{\getrefbykeydefault{sec:hello}{title}{}}{Hello World}% - \test{\getrefbykeydefault{sec:foo}{title}{}}{\hbox{xy}}% - \begingroup - \def\hbox#1{[#1]}% hash-ok - \test{\getrefbykeydefault{sec:foo}{title}{}}{\hbox{xy}}% - \endgroup -} -\makeatother -% \end{macrocode} -% \begin{macrocode} -\end{document} -% -% \end{macrocode} -% \begin{macrocode} -%<*test5> -\NeedsTeXFormat{LaTeX2e} -\documentclass{book} -\usepackage{refcount}[2016/05/16] -\usepackage{zref-runs} -\newcounter{test} -\begin{document} -\ifnum\zruns>1 % - \makeatletter - \def\Test#1#2#3{% - \begingroup - \setcounter{test}{10}% - \sbox0{% - #1{test}{#2}% - \ifnum#3=\value{test}% - \else - \PackageError{test}{\string#1{#2} <> #3 (\the\value{test})}% - \fi - }% - \ifdim\wd0=0pt % - \else - \PackageError{test}{Non-empty box}\@ehc - \fi - \endgroup - }% - \makeatother - \Test\setcounterpageref{ch:two}{1}% - \Test\setcounterpageref{ch:three}{3}% - \Test\setcounterpageref{ch:four}{5}% - \Test\setcounterpageref{ch:five}{7}% - \Test\setcounterpageref{ch:six}{9}% - \Test\setcounterpageref{ch:seven}{13}% - \Test\addtocounterpageref{ch:two}{11}% - \Test\addtocounterpageref{ch:three}{13}% - \Test\addtocounterpageref{ch:four}{15}% - \Test\addtocounterpageref{ch:five}{17}% - \Test\addtocounterpageref{ch:six}{19}% - \Test\addtocounterpageref{ch:seven}{23}% - \Test\setcounterref{ch:two}{1}% - \Test\setcounterref{ch:three}{2}% - \Test\setcounterref{ch:four}{11}% - \Test\addtocounterref{ch:two}{11}% - \Test\addtocounterref{ch:three}{12}% - \Test\addtocounterref{ch:four}{21}% -\fi -\frontmatter -\chapter{Chapter one}\label{ch:one} -\cleardoublepage -\mainmatter -\chapter{Chapter two}\label{ch:two} -\cleardoublepage -\chapter{Chapter three}\label{ch:three} -\cleardoublepage -\setcounter{chapter}{10} -\chapter{Chapter four}\label{ch:four} -\cleardoublepage -\appendix -\chapter{Chapter five}\label{ch:five} -\cleardoublepage -\chapter{Chapter six}\label{ch:six} -\cleardoublepage -\null -\cleardoublepage -\chapter{Chapter seven}\label{ch:seven} -\end{document} -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -1357,11 +924,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % refcount.sty & tex/latex/oberdiek/refcount.sty\\ % refcount.pdf & doc/latex/oberdiek/refcount.pdf\\ -% test/refcount-test1.tex & doc/latex/oberdiek/test/refcount-test1.tex\\ -% test/refcount-test2.tex & doc/latex/oberdiek/test/refcount-test2.tex\\ -% test/refcount-test3.tex & doc/latex/oberdiek/test/refcount-test3.tex\\ -% test/refcount-test4.tex & doc/latex/oberdiek/test/refcount-test4.tex\\ -% test/refcount-test5.tex & doc/latex/oberdiek/test/refcount-test5.tex\\ % refcount.dtx & source/latex/oberdiek/refcount.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/refcount.pdf b/macros/latex/contrib/oberdiek/refcount.pdf index ea859eda11..a50de50a98 100644 Binary files a/macros/latex/contrib/oberdiek/refcount.pdf and b/macros/latex/contrib/oberdiek/refcount.pdf differ diff --git a/macros/latex/contrib/oberdiek/rerunfilecheck.dtx b/macros/latex/contrib/oberdiek/rerunfilecheck.dtx index 2687619377..173044c8c0 100644 --- a/macros/latex/contrib/oberdiek/rerunfilecheck.dtx +++ b/macros/latex/contrib/oberdiek/rerunfilecheck.dtx @@ -65,7 +65,6 @@ % TDS:tex/latex/oberdiek/rerunfilecheck.sty % TDS:doc/latex/oberdiek/rerunfilecheck.pdf % TDS:doc/latex/oberdiek/rerunfilecheck-example.cfg -% TDS:doc/latex/oberdiek/test/rerunfilecheck-test1.tex % TDS:source/latex/oberdiek/rerunfilecheck.dtx % %<*ignore> @@ -176,21 +175,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{rerunfilecheck.drv} % @@ -724,123 +708,7 @@ and the derived files \ReFiCh@AtEnd% % % \end{macrocode} -% -% \section{Test} -% -% \begin{macrocode} -%<*test1> -\def\LoadCommand{\RequirePackage{rerunfilecheck}[2016/05/16]} -% -% \end{macrocode} -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input rerunfilecheck.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -890,7 +758,6 @@ and the derived files % rerunfilecheck.sty & tex/latex/oberdiek/rerunfilecheck.sty\\ % rerunfilecheck.pdf & doc/latex/oberdiek/rerunfilecheck.pdf\\ % rerunfilecheck-example.cfg & doc/latex/oberdiek/rerunfilecheck-example.cfg\\ -% test/rerunfilecheck-test1.tex & doc/latex/oberdiek/test/rerunfilecheck-test1.tex\\ % rerunfilecheck.dtx & source/latex/oberdiek/rerunfilecheck.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/rerunfilecheck.pdf b/macros/latex/contrib/oberdiek/rerunfilecheck.pdf index dfab7d9e4e..f0d393ffa1 100644 Binary files a/macros/latex/contrib/oberdiek/rerunfilecheck.pdf and b/macros/latex/contrib/oberdiek/rerunfilecheck.pdf differ diff --git a/macros/latex/contrib/oberdiek/resizegather.dtx b/macros/latex/contrib/oberdiek/resizegather.dtx index 6f49f1c7ad..596446de2c 100644 --- a/macros/latex/contrib/oberdiek/resizegather.dtx +++ b/macros/latex/contrib/oberdiek/resizegather.dtx @@ -63,7 +63,6 @@ % Installation: % TDS:tex/latex/oberdiek/resizegather.sty % TDS:doc/latex/oberdiek/resizegather.pdf -% TDS:doc/latex/oberdiek/test/resizegather-test1.tex % TDS:source/latex/oberdiek/resizegather.dtx % %<*ignore> @@ -131,10 +130,6 @@ and the derived files \file{resizegather.sty}{\from{resizegather.dtx}{package}}% % \usedir{doc/latex/oberdiek/test}% % \file{resizegather-test1.tex}{\from{resizegather.dtx}{test1}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{resizegather.xml}{\from{resizegather.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -178,21 +173,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{resizegather.drv} % @@ -681,118 +661,7 @@ and the derived files \ResizeGather@AtEnd% % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input resizegather.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -841,7 +710,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % resizegather.sty & tex/latex/oberdiek/resizegather.sty\\ % resizegather.pdf & doc/latex/oberdiek/resizegather.pdf\\ -% test/resizegather-test1.tex & doc/latex/oberdiek/test/resizegather-test1.tex\\ % resizegather.dtx & source/latex/oberdiek/resizegather.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/resizegather.pdf b/macros/latex/contrib/oberdiek/resizegather.pdf index db0ac7254f..a2535e2bd5 100644 Binary files a/macros/latex/contrib/oberdiek/resizegather.pdf and b/macros/latex/contrib/oberdiek/resizegather.pdf differ diff --git a/macros/latex/contrib/oberdiek/rotchiffre.dtx b/macros/latex/contrib/oberdiek/rotchiffre.dtx index 7e9a9e980d..3023347fe1 100644 --- a/macros/latex/contrib/oberdiek/rotchiffre.dtx +++ b/macros/latex/contrib/oberdiek/rotchiffre.dtx @@ -66,8 +66,6 @@ % Installation: % TDS:tex/generic/oberdiek/rotchiffre.sty % TDS:doc/latex/oberdiek/rotchiffre.pdf -% TDS:doc/latex/oberdiek/test/rotchiffre-test1.tex -% TDS:doc/latex/oberdiek/test/rotchiffre-test2.tex % TDS:source/latex/oberdiek/rotchiffre.dtx % %<*ignore> @@ -139,10 +137,6 @@ and the derived files % \usedir{doc/latex/oberdiek/test}% % \file{rotchiffre-test1.tex}{\from{rotchiffre.dtx}{test1}}% % \file{rotchiffre-test2.tex}{\from{rotchiffre.dtx}{test2}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{rotchiffre.xml}{\from{rotchiffre.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -181,21 +175,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{rotchiffre.drv} % @@ -719,412 +698,7 @@ and the derived files \RotCh@AtEnd% % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input rotchiffre.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Macro tests} -% -% \subsubsection{Preamble} -% -% \begin{macrocode} -%<*test2> -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\^=7 % -\font\rmfont=ec-lmtt10\relax -\rmfont -\showboxbreadth=10000 % -\showboxdepth=10000 % -\errorcontextlines=10000 -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname RequirePackage\endcsname\relax - \input rotchiffre.sty\relax -\else - \RequirePackage{rotchiffre}[2016/05/16]% - \RequirePackage{ifluatex}[2010/03/01]% - \RequirePackage{ifxetex}[2010/09/12]% -\fi -\catcode`\@=11 % -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname @onelevel@sanitize\endcsname\relax - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname detokenize\endcsname\relax - \def\strip@prefix#1->{}% - \def\@onelevel@sanitize#1{% - \edef#1{% - \expandafter\strip@prefix\meaning#1% - }% - }% - \else - \def\@onelevel@sanitize#1{% - \edef#1{% - \detokenize\expandafter{#1}% - }% - }% - \fi -\fi -\def\msg#{\immediate\write16} -\def\empty{} -\begingroup - \def\x#1{% - \def\space{#1}% - \def\spacesII{#1#1}% - \def\spacesIII{#1#1#1}% - \def\spacesIV{#1#1#1#1}% - }% -\expandafter\endgroup\x{ } -% \end{macrocode} -% \begin{macrocode} -\def\PrintStr#1#2{% - \begingroup - \@onelevel@sanitize#2% - \msg{#1: [#2]}% hash-ok - \endgroup -} -\def\CheckResult{% - \PrintStr{Result}\StrResult - \ifx\StrExpect\StrResult - \msg{==> Ok}% - \else - \begingroup - \edef\x{\endgroup - \errmessage{Test failed (\chiffre)!}% - }\x - \fi -} -\long\def\test#1#2{% - \msg{}% - \begingroup - \setbox0=\hbox{% - \edef\StrInput{#1}% - \@onelevel@sanitize\StrInput - \PrintStr{ Input}\StrInput - \edef\StrExpect{#2}% - \@onelevel@sanitize\StrExpect - \PrintStr{Expect}\StrExpect - \action{#1}% - \CheckResult - }% - \ifdim\wd0=0pt % - \else - \showbox0 % - \fi - \endgroup -} -\def\cmd#1{% - \msg{* CMD: ROT#1}% - \def\chiffre{ROT#1}% - \def\action{\EdefRot{#1}\StrResult}% -} -% \end{macrocode} -% \begin{macrocode} -\def\TestIgnore#1{% - \test{#1}{#1}% -} -\begingroup - \lccode`\P=`\%% - \lccode`\B=`\\% - \lccode`\H=`\#% -\lowercase{\endgroup - \def\PercentChar{P}% - \def\BackslashChar{B}% - \def\HashChar{H}% -} -\def\TestI{% - \TestIgnore{% - \space!"\HashChar$\PercentChar&'()*+,-./% - :;<=>?@% - [\BackslashChar]^_`% - \string{|\string}\string~% - }% -} -\begingroup - \catcode0=12 % - \lccode`A=1 % - \lccode`B=2 % - \lccode`C=3 % - \lccode`D=4 % - \lccode`E=5 % - \lccode`F=6 % - \lccode`G=7 % - \lccode`H=8 % - \lccode`I=9 % - \lccode`J=10 % - \lccode`K=11 % - \lccode`L=12 % - \lccode`M=13 % - \lccode`N=14 % - \lccode`O=15 % - \lccode`P=16 % - \lccode`Q=17 % - \lccode`R=18 % - \lccode`S=19 % - \lccode`T=20 % - \lccode`U=21 % - \lccode`V=22 % - \lccode`W=23 % - \lccode`X=24 % - \lccode`Y=25 % - \lccode`Z=26 % - \lccode`a=27 % - \lccode`b=28 % - \lccode`c=29 % - \lccode`d=30 % - \lccode`e=31 % - \lccode`f=127 % - \lccode`g=128 % - \lccode`h=129 % - \lccode`y=254 % - \lccode`z=255 % -\lowercase{\endgroup - \def\TestC{% - \TestIgnore{% - ^^@ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefhyz% - }% - }% - \def\TestZ{% - \TestIgnore{^^@}% - }% -} -% \end{macrocode} -% -% \subsubsection{ROT13} -% -% \begin{macrocode} -\cmd{13} -\test{% - 0123456789% - ABCDEFGHIJKLMNOPQRSTUVWXYZ% - abcdefghijklmnopqrstuvwxyz% -}{% - 0123456789% - NOPQRSTUVWXYZABCDEFGHIJKLM% - nopqrstuvwxyzabcdefghijklm% -} -\TestI -\TestC -\test{}{} -\test{A}{N} -\test{N}{A} -\test{ }{ } -\test{0a}{0n} -\test{\spacesIV}{\spacesIV} -\test{{}}{{}} -\test{\par}{\noexpand\cne} -% \end{macrocode} -% -% \subsubsection{ROT5} -% -% \begin{macrocode} -\cmd{5} -\test{% - 0123456789% - ABCDEFGHIJKLMNOPQRSTUVWXYZ% - abcdefghijklmnopqrstuvwxyz% -}{% - 5678901234% - ABCDEFGHIJKLMNOPQRSTUVWXYZ% - abcdefghijklmnopqrstuvwxyz% -} -\TestI -\TestC -% \end{macrocode} -% -% \subsubsection{ROT18} -% -% \begin{macrocode} -\cmd{18} -\test{% - ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789% - abcdefghijklmnopqrstuvwxyz% -}{% - STUVWXYZ0123456789ABCDEFGHIJKLMNOPQR% - nopqrstuvwxyzabcdefghijklm% -} -\TestI -\TestC -% \end{macrocode} -% -% \subsubsection{ROT47} -% -% \begin{macrocode} -\cmd{47} -\test{% - !"\HashChar$\PercentChar&'()*+,-./% - 0123456789% - :;<=>?@% - ABCDEFGHIJKLMNOPQRSTUVWXYZ% - [\BackslashChar]^_`% - abcdefghijklmnopqrstuvwxyz% - \string{|\string}\string~% -}{% - PQRSTUVWXYZ% - [\BackslashChar]^_`% - abcdefghijklmnopqrstuvwxyz% - \string{|\string}\string~% - !"\HashChar$\PercentChar&'()*+,-./% - 0123456789% - :;<=>?@% - ABCDEFGHIJKLMNO% -} -\TestZ -\TestC -% \end{macrocode} -% -% \subsubsection{Big chars} -% -% \begin{macrocode} -\chardef\temp=0 % -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname XeTeXrevision\endcsname\relax - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname RequirePackage\endcsname\relax - \input ifluatex.sty\relax - \else - \RequirePackage{ifluatex}[2010/03/01]% - \fi - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname luatexversion\endcsname\relax - \else - \chardef\temp=1 % - \fi -\else - \chardef\temp=1 % -\fi -\ifcase\temp - \csname @@end\expandafter\endcsname\expandafter\end -\fi -% \end{macrocode} -% \begin{macrocode} -\msg{* Big chars} -\cmd{5} -\test{}{} -\test{ }{ } -\test{ 0 1 }{ 5 6 } -\begingroup - \lccode`A=300 % - \lccode`B=1000 % - \lccode`C=10000 % -\lowercase{\endgroup - \TestIgnore{ABC}% - \TestIgnore{x A By zC xAy AxB}% -}% -% \end{macrocode} -% \begin{macrocode} -\csname @@end\endcsname\end -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -1173,8 +747,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % rotchiffre.sty & tex/generic/oberdiek/rotchiffre.sty\\ % rotchiffre.pdf & doc/latex/oberdiek/rotchiffre.pdf\\ -% test/rotchiffre-test1.tex & doc/latex/oberdiek/test/rotchiffre-test1.tex\\ -% test/rotchiffre-test2.tex & doc/latex/oberdiek/test/rotchiffre-test2.tex\\ % rotchiffre.dtx & source/latex/oberdiek/rotchiffre.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/rotchiffre.pdf b/macros/latex/contrib/oberdiek/rotchiffre.pdf index 698c213c9c..29808342d1 100644 Binary files a/macros/latex/contrib/oberdiek/rotchiffre.pdf and b/macros/latex/contrib/oberdiek/rotchiffre.pdf differ diff --git a/macros/latex/contrib/oberdiek/scrindex.dtx b/macros/latex/contrib/oberdiek/scrindex.dtx index 68ba61790a..fea57fd1a9 100644 --- a/macros/latex/contrib/oberdiek/scrindex.dtx +++ b/macros/latex/contrib/oberdiek/scrindex.dtx @@ -133,10 +133,6 @@ and the derived files \usedir{doc/latex/oberdiek}% \file{scrindex-example1.tex}{\from{scrindex.dtx}{example1}}% \file{scrindex-example2.tex}{\from{scrindex.dtx}{example2}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{scrindex.xml}{\from{scrindex.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -174,21 +170,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{scrindex.drv} % diff --git a/macros/latex/contrib/oberdiek/scrindex.pdf b/macros/latex/contrib/oberdiek/scrindex.pdf index eb5b144d21..887e13df7a 100644 Binary files a/macros/latex/contrib/oberdiek/scrindex.pdf and b/macros/latex/contrib/oberdiek/scrindex.pdf differ diff --git a/macros/latex/contrib/oberdiek/selinput.dtx b/macros/latex/contrib/oberdiek/selinput.dtx index 1dcc45ff79..97fc336c3c 100644 --- a/macros/latex/contrib/oberdiek/selinput.dtx +++ b/macros/latex/contrib/oberdiek/selinput.dtx @@ -64,11 +64,6 @@ % Installation: % TDS:tex/latex/oberdiek/selinput.sty % TDS:doc/latex/oberdiek/selinput.pdf -% TDS:doc/latex/oberdiek/test/selinput-test1.tex -% TDS:doc/latex/oberdiek/test/selinput-test2.tex -% TDS:doc/latex/oberdiek/test/selinput-test3.tex -% TDS:doc/latex/oberdiek/test/selinput-test4.tex -% TDS:doc/latex/oberdiek/test/selinput-test5.tex % TDS:source/latex/oberdiek/selinput.dtx % %<*ignore> @@ -141,10 +136,6 @@ and the derived files % \file{selinput-test3.tex}{\from{selinput.dtx}{test,test3}}% % \file{selinput-test4.tex}{\from{selinput.dtx}{test,test4}}% % \file{selinput-test5.tex}{\from{selinput.dtx}{test,test5}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{selinput.xml}{\from{selinput.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -187,21 +178,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{selinput.drv} % @@ -666,123 +642,7 @@ and the derived files % \begin{macrocode} % % \end{macrocode} -% -% \section{Test} -% -% \begin{macrocode} -%<*test> -\NeedsTeXFormat{LaTeX2e} -\documentclass{minimal} -\usepackage{textcomp} -\usepackage{qstest} -% \end{macrocode} -% \begin{macrocode} -%<*test1|test2|test3> -\makeatletter -\let\BeginDocumentText\@empty -\def\TestEncoding#1#2{% - \SelectInputMappings{#2}% - \Expect*{\SIE@Encoding}{#1}% - \Expect*{\inputencodingname}{#1}% - \g@addto@macro\BeginDocumentText{% - \SelectInputMappings{#2}% - \Expect*{\SIE@Encoding}{#1}% - \textbf{\SIE@Encoding:} % - \kvsetkeys{test}{#2}\par - }% -} -\def\TestKey#1#2{% - \define@key{test}{#1}{% - \sbox0{##1}% - \sbox2{#2}% - \Expect*{wd:\the\wd0, ht:\the\ht0, dp:\the\dp0}% - *{wd:\the\wd2, ht:\the\ht2, dp:\the\dp2}% - [#1=##1] % hash-ok - }% -} -\RequirePackage{keyval} -\TestKey{adieresis}{\"a} -\TestKey{germandbls}{\ss} -\TestKey{Euro}{\texteuro} -\makeatother -\usepackage[ - warning,% -% utf8=utf-8, -% ucs, -]{selinput} -%\inputencoding{ascii} -%\inputencoding{utf-8} -%\usepackage{ucs} -\begin{qstest}{preamble}{} - \TestEncoding{x-iso-8859-15}{% - adieresis=^^e4,% - germandbls=^^df,% - Euro=^^a4,% - }% - \TestEncoding{x-cp1252}{% - adieresis=^^e4,% - germandbls=^^df,% - Euro=^^80,% - }% -% \TestEncoding{utf8}{% -% \TestEncoding{utf-8}{% -% \TestEncoding{utf8x}{% - adieresis=^^c3^^a4,% - germandbls=^^c3^^9f,% -% Euro=^^e2^^82^^ac, - }% -\end{qstest} -%\let\ifUnicodeOptiongraphics\iffalse -\begin{document} -\begin{qstest}{document}{} -%\makeatletter - \BeginDocumentText -\end{qstest} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test4> -\usepackage[warning,ucs]{selinput} -\SelectInputMappings{% - adieresis=^^c3^^a4,% - germandbls=^^c3^^9f,% - Euro=^^e2^^82^^ac,% -} -\begin{qstest}{encoding}{} - \Expect*{\inputencodingname}{utf8x}% -\end{qstest} -\begin{document} - adieresis=^^c3^^a4, % - germandbls=^^c3^^9f, % - Euro=^^e2^^82^^ac% -% -% \end{macrocode} -% -% \begin{macrocode} -%<*test5> -\usepackage[warning,ucs]{selinput} -\SelectInputMappings{% - adieresis={\"a},% - germandbls={{\ss}},% - Euro=\texteuro{},% -} -\begin{qstest}{encoding}{} - \Expect*{\inputencodingname}{ascii}% -\end{qstest} -\begin{document} - adieresis={\"a}, % - germandbls={{\ss}}, % - Euro=\texteuro{}% -% -% \end{macrocode} -% -% \begin{macrocode} -\end{document} -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -831,11 +691,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % selinput.sty & tex/latex/oberdiek/selinput.sty\\ % selinput.pdf & doc/latex/oberdiek/selinput.pdf\\ -% test/selinput-test1.tex & doc/latex/oberdiek/test/selinput-test1.tex\\ -% test/selinput-test2.tex & doc/latex/oberdiek/test/selinput-test2.tex\\ -% test/selinput-test3.tex & doc/latex/oberdiek/test/selinput-test3.tex\\ -% test/selinput-test4.tex & doc/latex/oberdiek/test/selinput-test4.tex\\ -% test/selinput-test5.tex & doc/latex/oberdiek/test/selinput-test5.tex\\ % selinput.dtx & source/latex/oberdiek/selinput.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/selinput.pdf b/macros/latex/contrib/oberdiek/selinput.pdf index d92d4c725b..f851f0385c 100644 Binary files a/macros/latex/contrib/oberdiek/selinput.pdf and b/macros/latex/contrib/oberdiek/selinput.pdf differ diff --git a/macros/latex/contrib/oberdiek/setouterhbox.dtx b/macros/latex/contrib/oberdiek/setouterhbox.dtx index baa5ac5573..001cd278d3 100644 --- a/macros/latex/contrib/oberdiek/setouterhbox.dtx +++ b/macros/latex/contrib/oberdiek/setouterhbox.dtx @@ -68,8 +68,6 @@ % TDS:tex/generic/oberdiek/setouterhbox.sty % TDS:doc/latex/oberdiek/setouterhbox.pdf % TDS:doc/latex/oberdiek/setouterhbox-example.tex -% TDS:doc/latex/oberdiek/test/setouterhbox-test1.tex -% TDS:doc/latex/oberdiek/test/setouterhbox-test2.tex % TDS:source/latex/oberdiek/setouterhbox.dtx % %<*ignore> @@ -144,10 +142,6 @@ and the derived files % \usedir{doc/latex/oberdiek/test}% % \file{setouterhbox-test1.tex}{\from{setouterhbox.dtx}{test1}}% % \file{setouterhbox-test2.tex}{\from{setouterhbox.dtx}{test2}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{setouterhbox.xml}{\from{setouterhbox.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -184,21 +178,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{setouterhbox.drv} % @@ -787,154 +766,7 @@ E \egroup \setouterhboxAtEnd% % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input setouterhbox.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Test with package \xpackage{url}} -% -% \begin{macrocode} -%<*test2> -\nofiles -\documentclass[a5paper]{article} -\usepackage{url}[2005/06/27] -\usepackage{setouterhbox} - -\newsavebox{\testbox} - -\setlength{\parindent}{0pt} -\setlength{\parskip}{2em} - -\begin{document} -\raggedright - -\url{http://this.is.a.very.long.host.name/followed/% -by/a/very_long_long_long_path.html}% - -\sbox\testbox{% - \url{http://this.is.a.very.long.host.name/followed/% - by/a/very_long_long_long_path.html}% -}% -\unhbox\testbox - -\begin{setouterhbox}{\testbox}% - \url{http://this.is.a.very.long.host.name/followed/% - by/a/very_long_long_long_path.html}% -\end{setouterhbox} -\unhbox\testbox - -\end{document} -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -984,8 +816,6 @@ by/a/very_long_long_long_path.html}% % setouterhbox.sty & tex/generic/oberdiek/setouterhbox.sty\\ % setouterhbox.pdf & doc/latex/oberdiek/setouterhbox.pdf\\ % setouterhbox-example.tex & doc/latex/oberdiek/setouterhbox-example.tex\\ -% test/setouterhbox-test1.tex & doc/latex/oberdiek/test/setouterhbox-test1.tex\\ -% test/setouterhbox-test2.tex & doc/latex/oberdiek/test/setouterhbox-test2.tex\\ % setouterhbox.dtx & source/latex/oberdiek/setouterhbox.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/setouterhbox.pdf b/macros/latex/contrib/oberdiek/setouterhbox.pdf index c2efdc3fb4..be203061ab 100644 Binary files a/macros/latex/contrib/oberdiek/setouterhbox.pdf and b/macros/latex/contrib/oberdiek/setouterhbox.pdf differ diff --git a/macros/latex/contrib/oberdiek/settobox.dtx b/macros/latex/contrib/oberdiek/settobox.dtx index 7ff43430a5..c38d502a53 100644 --- a/macros/latex/contrib/oberdiek/settobox.dtx +++ b/macros/latex/contrib/oberdiek/settobox.dtx @@ -131,10 +131,6 @@ and the derived files \file{settobox.sty}{\from{settobox.dtx}{package}}% \usedir{doc/latex/oberdiek}% \file{settobox-example.tex}{\from{settobox.dtx}{example}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{settobox.xml}{\from{settobox.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -173,21 +169,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{settobox.drv} % diff --git a/macros/latex/contrib/oberdiek/settobox.pdf b/macros/latex/contrib/oberdiek/settobox.pdf index 7b1c067ae1..e9d22ad222 100644 Binary files a/macros/latex/contrib/oberdiek/settobox.pdf and b/macros/latex/contrib/oberdiek/settobox.pdf differ diff --git a/macros/latex/contrib/oberdiek/soulutf8.dtx b/macros/latex/contrib/oberdiek/soulutf8.dtx index a25b50be1c..f5708e8ac2 100644 --- a/macros/latex/contrib/oberdiek/soulutf8.dtx +++ b/macros/latex/contrib/oberdiek/soulutf8.dtx @@ -67,11 +67,6 @@ % Installation: % TDS:tex/generic/oberdiek/soulutf8.sty % TDS:doc/latex/oberdiek/soulutf8.pdf -% TDS:doc/latex/oberdiek/test/soulutf8-test1.tex -% TDS:doc/latex/oberdiek/test/soulutf8-test2.tex -% TDS:doc/latex/oberdiek/test/soulutf8-test3.tex -% TDS:doc/latex/oberdiek/test/soulutf8-test4.tex -% TDS:doc/latex/oberdiek/test/soulutf8-test5.tex % TDS:source/latex/oberdiek/soulutf8.dtx % %<*ignore> @@ -147,10 +142,6 @@ and the derived files % \file{soulutf8-test3.tex}{\from{soulutf8.dtx}{test3,utf8x}}% % \file{soulutf8-test4.tex}{\from{soulutf8.dtx}{test4,utf8,noetex}}% % \file{soulutf8-test5.tex}{\from{soulutf8.dtx}{test5,utf8x,noetex}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{soulutf8.xml}{\from{soulutf8.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -187,21 +178,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{soulutf8.drv} % @@ -1128,553 +1104,7 @@ and the derived files % \begin{macrocode} % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input soulutf8.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{\LaTeX\space tests} -% -% \begin{macrocode} -%<*test2|test3|test4|test5> -% \end{macrocode} -% \begin{macrocode} -%\let\SavedUnexpanded\unexpanded -%\let\unexpanded\UNDEFINED -\NeedsTeXFormat{LaTeX2e} -\documentclass{article} -\usepackage[T1]{fontenc} -\usepackage{lmodern} -\usepackage{textcomp} -\usepackage[ngerman]{babel} -\expandafter\def\csname ver@hypdestopt.sty\endcsname{} -\usepackage[unicode]{hyperref} -\usepackage{bookmark} -\usepackage{color} -\usepackage{soul}[2003/11/17] -\makeatletter -\newcommand*{\@ifDefined}[1]{% - \@ifundefined{#1}{% - \@latex@error{% - \expandafter\noexpand\csname#1\endcsname undefined% - }\@ehc - }% -} -\newcommand*{\SaveOrg}[1]{% - \@ifdefinable{ORG@SOUL@#1}{% - \@ifDefined{SOUL@#1}{% - \expandafter\let\csname ORG@SOUL@#1\expandafter\endcsname - \csname SOUL@#1\endcsname - }% - }% -} -\newcommand*{\RestoreOrg}[1]{% - \@ifDefined{ORG@SOUL@#1}{% - \@ifDefined{SOUL@#1}{% - \expandafter\let\csname SOUL@#1\expandafter\endcsname - \csname ORG@SOUL@#1\endcsname - }% - }% -} -\makeatother -\SaveOrg{eval} -\SaveOrg{splittoken} -\SaveOrg{flushcomma} -\SaveOrg{flushapo} -\SaveOrg{grave} -\SaveOrg{addgroup} -\SaveOrg{addmath} -\SaveOrg{addprotect} -\SaveOrg{addtoken} -\usepackage{soulutf8}[2016/05/16] -% \end{macrocode} -% \begin{macrocode} -%\let\unexpanded\SavedUnexpanded -% \end{macrocode} -% Input encoding \xfile{utf8}. -% \begin{macrocode} -%<*utf8> -\usepackage[utf8]{inputenc} -\DeclareUnicodeCharacter{00A0}{\nobreakspace} -% -% \end{macrocode} -% Input encoding \xfile{utf8x}. Package \xpackage{ucs} -% has a nasty bug, that it redefines \cs{show}. -% \begin{macrocode} -%<*utf8x> -\let\origshow\show -\usepackage[utf8x]{inputenc} -\AtBeginDocument{% - \let\show\origshow -} -% -% \end{macrocode} -% -% \subsubsection{Driver definitions} -% -% \begin{macrocode} -\makeatletter -% \end{macrocode} -% \begin{macro}{\an} -% The definition for \cs{an} is taken from the documentation of -% package \xpackage{soul}. -% \begin{macrocode} -\DeclareRobustCommand*{\an}{% - \def\SOUL@preamble{$^{^P}$}% - \def\SOUL@everyspace##1{##1\texttt{\char`\ }\linebreak[2]}% - \def\SOUL@postamble{$^{^E}$}% - \def\SOUL@everyhyphen{$^{^-}$\linebreak[1]}% - \def\SOUL@everyexhyphen##1{##1$^{^=}$}% - \def\SOUL@everysyllable{$^{^S}$}% - \def\SOUL@everytoken{\the\SOUL@token$^{^T}$}% - \def\SOUL@everylowerthan{$^{^L}$}% - \SOUL@ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\sy} -% The definition for \cs{sy} is taken from the documentation of -% package \xpackage{soul}. -% \begin{macrocode} -\DeclareRobustCommand*{\sy}{% - \SOUL@setup - \def\SOUL@preamble{% - \lefthyphenmin=\z@ - \righthyphenmin=\z@ - }% - \def\SOUL@everyspace##1{##1\space}% - \def\SOUL@everysyllable{\the\SOUL@syllable}% - \def\SOUL@everyhyphen{% - \discretionary{% - \SOUL@setkern\SOUL@hyphkern - \SOUL@sethyphenchar - }{}{% - \hbox{\kern1pt$\cdot$}% - }% - }% - \def\SOUL@everyexhyphen##1{% - \SOUL@setkern\SOUL@hyphkern - \hbox{##1}% - \discretionary{}{}{% - \SOUL@setkern\SOUL@charkern - }% - }% - \SOUL@ -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\soulH} -% \begin{macrocode} -\DeclareRobustCommand*{\soulH}{% - \def\SOUL@preamble{% - \gdef\SOULH{}% - \soulHadd{[}% - }% - \def\SOUL@everyspace##1{% - \soulHadd{Sp}% - }% - \def\SOUL@postamble{% - \soulHadd{]}% - }% - \def\SOUL@everyhyphen{% - \soulHadd{Hy}% - }% - \def\SOUL@everyexhyphen##1{% - \soulHadd{Exhy}% - }% - \def\SOUL@everysyllable{% - \soulHadd{Sy}% - }% - \def\SOUL@everytoken{% - \soulHadd{T}% - }% - \def\SOUL@everylowerthan{% - \soulHadd{<}% - }% - \SOUL@ -} -\newcommand*{\soulHadd}[1]{% - #1% - \expandafter\gdef\expandafter\soulHstring\expandafter{% - \soulHstring - #1% - }% -} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{Test macros} -% -% \begin{macrocode} -\usepackage{qstest} -\IncludeTests{*} -\LogTests{log}{*}{*} -% \end{macrocode} -% \begin{macrocode} -\newsavebox\boxA -\newsavebox\boxB -\newsavebox\boxC -% \end{macrocode} -% \begin{macro}{\TestDriver} -% \begin{macrocode} -\newcommand*{\TestDriver}[4]{% - \subsection{Driver #1}% - \@PackageInfo{soulutf8-test}{* Driver #1}% - \expandafter\let\expandafter\testdriver\csname #1\endcsname - \def\teststringA{#3}% - \def\teststringB{#4}% - \begin{qstest}{string-#2-driver-#1}{string,#2,driver,#1}% - \@PackageInfo{soulutf8-test}{* Version: soulutf8}% - \global\let\soulHstring\@empty - \setbox0=\hbox{\expandafter\testdriver\expandafter{\teststringA}}% - \let\HstringA\soulHstring - \SetTestVBox{\boxA}{\teststringA}% - % - \@PackageInfo{soulutf8-test}{* Version: soul + patch}% - \global\let\soulHstring\@empty - \RestoreOrg{eval}% - \setbox2=\hbox{\expandafter\testdriver\expandafter{\teststringB}}% - \let\HstringB\soulHstring - \SetTestVBox{\boxB}{\teststringB}% - % - \@PackageInfo{soulutf8-test}{* Version: original soul}% - \global\let\soulHstring\@empty - \RestoreOrg{splittoken}% - \RestoreOrg{flushcomma}% - \RestoreOrg{flushapo}% - \RestoreOrg{grave}% - \RestoreOrg{addgroup}% - \RestoreOrg{addmath}% - \RestoreOrg{addprotect}% - \RestoreOrg{addtoken}% - \setbox4=\hbox{\expandafter\testdriver\expandafter{\teststringB}}% - \let\HstringC\soulHstring - \SetTestVBox{\boxC}{\teststringB}% - % - \TestInfo{0}{soulutf8}% - \TestInfo{2}{soul + patch}% - \TestInfo{4}{original soul}% - \TestInfoVBox - \showboxdepth=\maxdimen - \showboxbreadth=\maxdimen - \tracingonline=\@ne - \Expect*{\HstringA}*{\HstringB}% - \Expect*{\HstringA}*{\HstringC}% - \Expect*{\the\wd0}*{\the\wd2}% - \ifdim\wd0=\wd2 % - \else - \showbox0 % - \showbox2 % - \fi - \Expect*{\the\ht0}*{\the\ht2}% - \Expect*{\the\dp0}*{\the\dp2}% - \Expect*{\the\wd\boxB}*{\the\wd\boxA}% - \Expect*{\the\wd\boxC}*{\the\wd\boxA}% - \Expect*{\the\ht\boxB}*{\the\ht\boxA}% - \ifdim\ht\boxB=\ht\boxA - \else - \showbox\boxA - \showbox\boxB - \fi - \Expect*{\the\ht\boxC}*{\the\ht\boxA}% - \Expect*{\the\dp\boxB}*{\the\dp\boxA}% - \Expect*{\the\dp\boxC}*{\the\dp\boxA}% - \end{qstest}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\SetTestVBox} -% \begin{macrocode} -\newcommand*{\SetTestVBox}[2]{% - \setbox#1=\vbox{% - \hsize=0pt\relax - \hfuzz=100mm\relax - \expandafter\testdriver\expandafter{#2}% - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\TestInfo} -% \begin{macrocode} -\newcommand*{\TestInfo}[2]{% - \par - \noindent - \copy#1\relax - \hfill - \begingroup - \small - \ifdim\wd0=\wd2\relax - \ifdim\wd0=\wd4\relax - \else - \ifnum#1=2 % - \raisebox{.5\baselineskip}[0pt][0pt]{% - \llap{$\}$ }% - \rlap{width = \the\wd#1\relax\space$\{$}% - \phantom{width = 999.99999pt}% - \qquad - }% - \else - \ifnum#1=4 % - \rlap{width = \the\wd#1}% - \phantom{width = 999.99999pt}% - \qquad - \fi - \fi - \fi - \else - \begingroup - \bfseries - \rlap{width = \the\wd#1}% - \phantom{width = 999.99999pt}% - \endgroup - \qquad - \fi - \rlap{(#2)}% - \phantom{(original soul)}% - \endgroup - \par -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\TestInfoVBox} -% \begin{macrocode} -\newcommand*{\TestInfoVBox}{% - \par - \noindent - \mbox{\vrule\relax\space\copy\boxA}% - \ifdim\ht\boxA=\ht\boxB - \else - \hfill - \begingroup - \small - \rlap{(soulutf8)}% - \phantom{(soulutf8)}% - \endgroup - \par - \noindent - \mbox{\vrule\relax\space\copy\boxB}% - \hfill - \begingroup - \small - \rlap{(soul)}% - \phantom{(soulutf8)}% - \endgroup - \fi - \par -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\Test} -% \begin{macrocode} -\makeatletter -\newcommand*{\Test}[3]{% - \clearpage - \begingroup - \def\linebreak{\textbackslash linebreak }% - \def\\{\textbackslash\textbackslash}% - \def\soulomit##1{% - \textbackslash soulomit\textbraceleft##1\textbraceright - }% - \def\mbox##1{% - \textbackslash mbox\textbraceleft##1\textbraceright - }% - \def\abc{\textbackslash abc }% - \def\texttt##1{% - \textbackslash texttt\textbraceleft##1\textbraceright - }% - \def\c##1{% - \textbackslash c\textbraceleft##1\textbraceright - }% -%<*utf8x> - \count@=128 % - \loop - \ifnum\count@<256 % - \lccode`\~=\count@ - \lowercase{% - \def~{\noexpand~}% - }% - \advance\count@\@ne - \repeat -% - \csname protected@edef\endcsname\x{\endgroup - \noexpand\section{String #1: #2}% - }% - \x - \TestDriver{so}{#1}{#2}{#3}% - \TestDriver{caps}{#1}{#2}{#3}% - \TestDriver{ul}{#1}{#2}{#3}% - \TestDriver{st}{#1}{#2}{#3}% - \TestDriver{hl}{#1}{#2}{#3}% - \TestDriver{an}{#1}{#2}{#3}% - \TestDriver{sy}{#1}{#2}{#3}% - \TestDriver{soulH}{#1}{#2}{#3}% -} -\makeatother -% \end{macrocode} -% \end{macro} -% -% \subsubsection{Testing} -% -% \begin{macrocode} -\begin{document} - \Test A{}{}% - \Test B{Hello World}{Hello World}% - \Test C{% - Umlauts: ^^c3^^84^^c3^^96^^c3^^9c^^c3^^a4^^c3^^b6^^c3^^bc^^c3^^9f% - }{% - Umlauts: \"A\"O\"U\"a\"o\"u\ss - }% - \Test D{Euro: ^^e2^^82^^ac}{Euro: \texteuro}% - \Test E{Stra^^c3^^9fe}{Stra\ss e}% - \Test F{R^^c3^^b6mer}{R\"omer}% - \Test G{A^^e2^^80^^93B^^e2^^80^^94C}{A--B---C}% - \Test H{X^^c2^^a0Y}{X~Y}% - \Test I{A^^c5^^a4}{A\v T}% - \Test J{A,B,,C,,,D,,,,E}{A,B,,C,,,D,,,,E}% - \Test K{A'B''C'''D''''E}{A'B''C'''D''''E}% - \Test L{A`B``C```D````E}{A`B``C```D````E}% - \Test M{A$x$B}{A$x$B}% - \Test N{A\mbox{abc}B}{A\mbox{abc}B}% - \Test O{,,TA''}{,,TA''}% - \Test P{{!`}Hola{?`}}{{!`}Hola{?`}}% - \Test Q{re-sent\slash x}{re-sent\slash x}% - \Test R{new\\line}{new\\line}% - \Test S{foo\linebreak bar}{foo\linebreak bar}% - \Test T{Virchow{sche}}{Virchow{sche}}% - \Test U{A\soulomit{foo}B}{A\soulomit{foo}B}% - \Test V{A\texttt{xyz}B}{A\texttt{xyz}B}% - \Test W{ffi}{ffi}% - \Test X{f{}f{}i}{f{}f{}i}% - \Test Y{f\mbox{}f\mbox{}i}{f\mbox{}f\mbox{}i}% - \Test Z{\c{\"a}}{{\c{\"a}}}% -%<*test2|test3> - \let\abcx\UNDEFINED - \def\abc{% - \begingroup - \def\abcx{x}% - \abcx - \endgroup - }% - \Test{AA}{[{x\abc x}]}{[{xxx}]}% -% -% \end{macrocode} -% -% \begin{macrocode} -\end{document} -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -1723,11 +1153,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % soulutf8.sty & tex/generic/oberdiek/soulutf8.sty\\ % soulutf8.pdf & doc/latex/oberdiek/soulutf8.pdf\\ -% test/soulutf8-test1.tex & doc/latex/oberdiek/test/soulutf8-test1.tex\\ -% test/soulutf8-test2.tex & doc/latex/oberdiek/test/soulutf8-test2.tex\\ -% test/soulutf8-test3.tex & doc/latex/oberdiek/test/soulutf8-test3.tex\\ -% test/soulutf8-test4.tex & doc/latex/oberdiek/test/soulutf8-test4.tex\\ -% test/soulutf8-test5.tex & doc/latex/oberdiek/test/soulutf8-test5.tex\\ % soulutf8.dtx & source/latex/oberdiek/soulutf8.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/soulutf8.pdf b/macros/latex/contrib/oberdiek/soulutf8.pdf index 3efb582a11..cf4409cdda 100644 Binary files a/macros/latex/contrib/oberdiek/soulutf8.pdf and b/macros/latex/contrib/oberdiek/soulutf8.pdf differ diff --git a/macros/latex/contrib/oberdiek/stackrel.dtx b/macros/latex/contrib/oberdiek/stackrel.dtx index 57cef731c3..6b3444c33c 100644 --- a/macros/latex/contrib/oberdiek/stackrel.dtx +++ b/macros/latex/contrib/oberdiek/stackrel.dtx @@ -126,10 +126,6 @@ and the derived files \file{stackrel.drv}{\from{stackrel.dtx}{driver}}% \usedir{tex/latex/oberdiek}% \file{stackrel.sty}{\from{stackrel.dtx}{package}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{stackrel.xml}{\from{stackrel.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -168,21 +164,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{stackrel.drv} % diff --git a/macros/latex/contrib/oberdiek/stackrel.pdf b/macros/latex/contrib/oberdiek/stackrel.pdf index 57fa7b7944..8457865306 100644 Binary files a/macros/latex/contrib/oberdiek/stackrel.pdf and b/macros/latex/contrib/oberdiek/stackrel.pdf differ diff --git a/macros/latex/contrib/oberdiek/stampinclude.dtx b/macros/latex/contrib/oberdiek/stampinclude.dtx index 5824cf4425..9acd8a61f8 100644 --- a/macros/latex/contrib/oberdiek/stampinclude.dtx +++ b/macros/latex/contrib/oberdiek/stampinclude.dtx @@ -126,10 +126,6 @@ and the derived files \file{stampinclude.drv}{\from{stampinclude.dtx}{driver}}% \usedir{tex/latex/oberdiek}% \file{stampinclude.sty}{\from{stampinclude.dtx}{package}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{stampinclude.xml}{\from{stampinclude.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -166,21 +162,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{stampinclude.drv} % @@ -610,13 +591,13 @@ and the derived files % Pablo A. Straub, Heiko Oberdiek: % \textit{The \xpackage{askinclude} package}; % 2007/10/23 v2.0; -% \CTAN{macros/latex/contrib/oberdiek/askinclude.pdf}. +% \CTANpkg{askinclude}. % % \bibitem{pdftexcmds} % Heiko Oberdiek: % \textit{The \xpackage{pdftexcmds} package}; % 2007/12/12 v0.3; -% \CTAN{macros/latex/contrib/oberdiek/pdftexcmds.pdf}. +% \CTANpkg{pdftexcmds}. % % \end{thebibliography} % diff --git a/macros/latex/contrib/oberdiek/stampinclude.pdf b/macros/latex/contrib/oberdiek/stampinclude.pdf index d020b7c68b..3e72ead4ae 100644 Binary files a/macros/latex/contrib/oberdiek/stampinclude.pdf and b/macros/latex/contrib/oberdiek/stampinclude.pdf differ diff --git a/macros/latex/contrib/oberdiek/tabularht.dtx b/macros/latex/contrib/oberdiek/tabularht.dtx index dba2d2f899..8d1ef6cb74 100644 --- a/macros/latex/contrib/oberdiek/tabularht.dtx +++ b/macros/latex/contrib/oberdiek/tabularht.dtx @@ -133,10 +133,6 @@ and the derived files \usedir{doc/latex/oberdiek}% \file{tabularht-example1.tex}{\from{tabularht.dtx}{example1}}% \file{tabularht-example2.tex}{\from{tabularht.dtx}{example2}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{tabularht.xml}{\from{tabularht.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -173,21 +169,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{tabularht.drv} % diff --git a/macros/latex/contrib/oberdiek/tabularht.pdf b/macros/latex/contrib/oberdiek/tabularht.pdf index f2931eded6..92ea96cc84 100644 Binary files a/macros/latex/contrib/oberdiek/tabularht.pdf and b/macros/latex/contrib/oberdiek/tabularht.pdf differ diff --git a/macros/latex/contrib/oberdiek/tabularkv.dtx b/macros/latex/contrib/oberdiek/tabularkv.dtx index 4bd350bd19..57ef5e8745 100644 --- a/macros/latex/contrib/oberdiek/tabularkv.dtx +++ b/macros/latex/contrib/oberdiek/tabularkv.dtx @@ -131,10 +131,6 @@ and the derived files \file{tabularkv.sty}{\from{tabularkv.dtx}{package}}% \usedir{doc/latex/oberdiek}% \file{tabularkv-example.tex}{\from{tabularkv.dtx}{example}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{tabularkv.xml}{\from{tabularkv.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -171,21 +167,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{tabularkv.drv} % diff --git a/macros/latex/contrib/oberdiek/tabularkv.pdf b/macros/latex/contrib/oberdiek/tabularkv.pdf index caaf4ef906..63951304d1 100644 Binary files a/macros/latex/contrib/oberdiek/tabularkv.pdf and b/macros/latex/contrib/oberdiek/tabularkv.pdf differ diff --git a/macros/latex/contrib/oberdiek/telprint.dtx b/macros/latex/contrib/oberdiek/telprint.dtx index a2df3a6528..57152c6651 100644 --- a/macros/latex/contrib/oberdiek/telprint.dtx +++ b/macros/latex/contrib/oberdiek/telprint.dtx @@ -66,7 +66,6 @@ % Installation: % TDS:tex/generic/oberdiek/telprint.sty % TDS:doc/latex/oberdiek/telprint.pdf -% TDS:doc/latex/oberdiek/test/telprint-test1.tex % TDS:source/latex/oberdiek/telprint.dtx % %<*ignore> @@ -137,10 +136,6 @@ and the derived files \file{telprint.sty}{\from{telprint.dtx}{package}}% % \usedir{doc/latex/oberdiek/test}% % \file{telprint-test1.tex}{\from{telprint.dtx}{test1}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{telprint.xml}{\from{telprint.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -178,21 +173,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{telprint.drv} % @@ -628,118 +608,7 @@ and the derived files \TELAtEnd% % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input telprint.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -788,7 +657,6 @@ and the derived files % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % telprint.sty & tex/generic/oberdiek/telprint.sty\\ % telprint.pdf & doc/latex/oberdiek/telprint.pdf\\ -% test/telprint-test1.tex & doc/latex/oberdiek/test/telprint-test1.tex\\ % telprint.dtx & source/latex/oberdiek/telprint.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/telprint.pdf b/macros/latex/contrib/oberdiek/telprint.pdf index aacc2fe448..090b5974ab 100644 Binary files a/macros/latex/contrib/oberdiek/telprint.pdf and b/macros/latex/contrib/oberdiek/telprint.pdf differ diff --git a/macros/latex/contrib/oberdiek/thepdfnumber.dtx b/macros/latex/contrib/oberdiek/thepdfnumber.dtx index 5b56027d9d..61eb42684c 100644 --- a/macros/latex/contrib/oberdiek/thepdfnumber.dtx +++ b/macros/latex/contrib/oberdiek/thepdfnumber.dtx @@ -67,9 +67,6 @@ % Installation: % TDS:tex/generic/oberdiek/thepdfnumber.sty % TDS:doc/latex/oberdiek/thepdfnumber.pdf -% TDS:doc/latex/oberdiek/test/thepdfnumber-test1.tex -% TDS:doc/latex/oberdiek/test/thepdfnumber-test2.tex -% TDS:doc/latex/oberdiek/test/thepdfnumber-test3.tex % TDS:source/latex/oberdiek/thepdfnumber.dtx % %<*ignore> @@ -186,21 +183,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{thepdfnumber.drv} % @@ -1102,303 +1084,7 @@ $ \else\ifnum`#2=46 % . \ThPdNu@AtEnd% % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input thepdfnumber.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Macro tests} -% -% \subsubsection{Preamble} -% -% \begin{macrocode} -%<*test2> -\catcode`\{=1 -\catcode`\}=2 -\catcode`\#=6 -\catcode`\@=11 -\errorcontextlines=10000 % -\def\msg#{\immediate\write16} -\def\space{ } -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname RequirePackage\endcsname\relax - \input thepdfnumber.sty\relax -\else - \RequirePackage{thepdfnumber}[2016/05/16]% -\fi -% \end{macrocode} -% -% \begin{macro}{\Test} -% \begin{macrocode} -\def\Test#1#2{% - \def\TestExpected{#2}% -%<*active> - \edef\TestExpected{\TestExpected}% -% - \expandafter\expandafter\expandafter\def - \expandafter\expandafter\expandafter\TestResult - \expandafter\expandafter\expandafter{% - \TestCommand{#1}% - }% - \begingroup - \toks0\expandafter{\TestResult}% - \toks2\expandafter{\TestExpected}% - \ifx\TestResult\TestExpected - \msg{* OK: #1 => \the\toks0}% - \else - \errmessage{FAILED: #1 => \the\toks0\space(\the\toks2)}% - \fi - \endgroup -} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\let\thepdfnumber@ErrorUnexpectedEnd\relax -\let\thepdfnumber@ErrorInvalidToken\relax -% \end{macrocode} -% -% \subsubsection{Test with active catcodes} -% -% \begin{macrocode} -%<*active> -\catcode`\~=13 % -\def\ThPdNu@Temp#1{% - \begingroup - \lccode`\~=`#1 % - \lowercase{\endgroup - \edef~% - }{\string#1}% - \catcode`#1=13 % -} -\ThPdNu@Temp{.} -\ThPdNu@Temp{-} -\ThPdNu@Temp{+} -% -% \end{macrocode} -% -% \subsubsection{Test cases for \cs{thepdfnumber}} -% -% \begin{macro}{\TestCommand} -% \begin{macrocode} -\let\TestCommand\thepdfnumber -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\Test{0}{0} -\Test{1}{1} -\Test{23}{23} -\Test{0045}{45} -\Test{4500}{4500} -\Test{-0}{0} -\Test{-1}{-1} -\Test{-00002}{-2} -\Test{-010203}{-10203} -\Test{+0}{0} -\Test{+123}{123} - -\Test{+-4}{-4} -\Test{+-+-4}{4} -\Test{++--++--++4}{4} -\Test{+++---+++---+++---4}{-4} - -\Test{.}{0} -\Test{0.}{0} -\Test{.0}{0} -\Test{0.}{0} -\Test{-.}{0} -\Test{-0.}{0} -\Test{-.0}{0} -\Test{-0.}{0} -\Test{010.020}{10.02} -\Test{123.456}{123.456} -\Test{12.}{12} -\Test{.123}{.123} -\Test{.0001}{.0001} -\Test{.00100}{.001} -\Test{.12003400560078009}{.12003400560078009} -\Test{-.12003400560078009}{-.12003400560078009} -\Test{04.0500000}{4.05} - -\Test{}{0\thepdfnumber@ErrorUnexpectedEnd} -\Test{+}{0\thepdfnumber@ErrorUnexpectedEnd} -\Test{-}{0\thepdfnumber@ErrorUnexpectedEnd} -\Test{a}{0\thepdfnumber@ErrorInvalidToken} -\Test{0x1}{0\thepdfnumber@ErrorInvalidToken} -\Test{4x56}{4\thepdfnumber@ErrorInvalidToken} -\Test{012,34}{12\thepdfnumber@ErrorInvalidToken} -\Test{0.12x4}{.12\thepdfnumber@ErrorInvalidToken} -% \end{macrocode} -% -% \subsubsection{Test cases for \cs{thepdfnumberNormZeroOne}} -% -% \begin{macro}{\TestCommand} -% \begin{macrocode} -\let\TestCommand\thepdfnumberNormZeroOne -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\Test{0}{0} -\Test{1}{1} -\Test{23}{1} -\Test{12}{1} -\Test{10}{1} -\Test{0045}{1} -\Test{001}{1} -\Test{-0}{0} -\Test{-1}{0} -\Test{-01}{0} -\Test{-4}{0} - -\Test{+-0}{0} -\Test{+-+-1}{1} -\Test{++--++--++1}{1} -\Test{+++---+++---+++---1}{0} - -\Test{.}{0} -\Test{0.}{0} -\Test{.0}{0} -\Test{0.}{0} -\Test{-.}{0} -\Test{-0.}{0} -\Test{-.0}{0} -\Test{-0.}{0} -\Test{010.020}{1} -\Test{123.456}{1} -\Test{12.}{1} -\Test{.123}{.123} -\Test{.0001}{.0001} -\Test{.00100}{.001} -\Test{.12003400560078009}{.12003400560078009} -\Test{-.12003400560078009}{0} -\Test{04.0500000}{1} -\Test{0.1200340056}{.1200340056} -\Test{1.05}{1} - -\Test{}{0\thepdfnumber@ErrorUnexpectedEnd} -\Test{+}{0\thepdfnumber@ErrorUnexpectedEnd} -\Test{-}{0\thepdfnumber@ErrorUnexpectedEnd} -\Test{a}{0\thepdfnumber@ErrorInvalidToken} -\Test{0x1}{0\thepdfnumber@ErrorInvalidToken} -\Test{4x56}{1} -\Test{012,34}{1} -\Test{.012x4}{.012\thepdfnumber@ErrorInvalidToken} -% \end{macrocode} -% -% \begin{macrocode} -\csname @@end\endcsname\end -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -1447,9 +1133,6 @@ $ \else\ifnum`#2=46 % . % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % thepdfnumber.sty & tex/generic/oberdiek/thepdfnumber.sty\\ % thepdfnumber.pdf & doc/latex/oberdiek/thepdfnumber.pdf\\ -% test/thepdfnumber-test1.tex & doc/latex/oberdiek/test/thepdfnumber-test1.tex\\ -% test/thepdfnumber-test2.tex & doc/latex/oberdiek/test/thepdfnumber-test2.tex\\ -% test/thepdfnumber-test3.tex & doc/latex/oberdiek/test/thepdfnumber-test3.tex\\ % thepdfnumber.dtx & source/latex/oberdiek/thepdfnumber.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/thepdfnumber.pdf b/macros/latex/contrib/oberdiek/thepdfnumber.pdf index b4a0cdf495..b46cc89055 100644 Binary files a/macros/latex/contrib/oberdiek/thepdfnumber.pdf and b/macros/latex/contrib/oberdiek/thepdfnumber.pdf differ diff --git a/macros/latex/contrib/oberdiek/twoopt.dtx b/macros/latex/contrib/oberdiek/twoopt.dtx index 4fc1bfec88..10334f0d3a 100644 --- a/macros/latex/contrib/oberdiek/twoopt.dtx +++ b/macros/latex/contrib/oberdiek/twoopt.dtx @@ -126,10 +126,6 @@ and the derived files \file{twoopt.drv}{\from{twoopt.dtx}{driver}}% \usedir{tex/latex/oberdiek}% \file{twoopt.sty}{\from{twoopt.dtx}{package}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{twoopt.xml}{\from{twoopt.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -166,21 +162,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{twoopt.drv} % diff --git a/macros/latex/contrib/oberdiek/twoopt.pdf b/macros/latex/contrib/oberdiek/twoopt.pdf index 6184989018..fcd3dea9b4 100644 Binary files a/macros/latex/contrib/oberdiek/twoopt.pdf and b/macros/latex/contrib/oberdiek/twoopt.pdf differ diff --git a/macros/latex/contrib/oberdiek/uniquecounter.dtx b/macros/latex/contrib/oberdiek/uniquecounter.dtx index 16a2991048..172d081435 100644 --- a/macros/latex/contrib/oberdiek/uniquecounter.dtx +++ b/macros/latex/contrib/oberdiek/uniquecounter.dtx @@ -69,9 +69,6 @@ % TDS:tex/generic/oberdiek/uniquecounter.sty % TDS:doc/latex/oberdiek/uniquecounter.pdf % TDS:doc/latex/oberdiek/uniquecounter-example.tex -% TDS:doc/latex/oberdiek/test/uniquecounter-test1.tex -% TDS:doc/latex/oberdiek/test/uniquecounter-test2.tex -% TDS:doc/latex/oberdiek/test/uniquecounter-test3.tex % TDS:source/latex/oberdiek/uniquecounter.dtx % %<*ignore> @@ -148,10 +145,6 @@ and the derived files % \file{uniquecounter-test1.tex}{\from{uniquecounter.dtx}{test1}}% % \file{uniquecounter-test2.tex}{\from{uniquecounter.dtx}{test2}}% % \file{uniquecounter-test3.tex}{\from{uniquecounter.dtx}{test3}}% - \nopreamble - \nopostamble -% \usedir{source/latex/oberdiek/catalogue}% -% \file{uniquecounter.xml}{\from{uniquecounter.dtx}{catalogue}}% } \catcode32=13\relax% active space @@ -188,21 +181,6 @@ and the derived files % \fi % % -% \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 \~} % % \GetFileInfo{uniquecounter.drv} % @@ -530,291 +508,7 @@ and the derived files % \begin{macrocode} % % \end{macrocode} -% -% \section{Test} -% -% \subsection{Catcode checks for loading} -% -% \begin{macrocode} -%<*test1> -% \end{macrocode} -% \begin{macrocode} -\catcode`\{=1 % -\catcode`\}=2 % -\catcode`\#=6 % -\catcode`\@=11 % -\expandafter\ifx\csname count@\endcsname\relax - \countdef\count@=255 % -\fi -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\expandafter\ifx\csname @firstofone\endcsname\relax - \long\def\@firstofone#1{#1}% -\fi -\expandafter\ifx\csname loop\endcsname\relax - \expandafter\@firstofone -\else - \expandafter\@gobble -\fi -{% - \def\loop#1\repeat{% - \def\body{#1}% - \iterate - }% - \def\iterate{% - \body - \let\next\iterate - \else - \let\next\relax - \fi - \next - }% - \let\repeat=\fi -}% -\def\RestoreCatcodes{} -\count@=0 % -\loop - \edef\RestoreCatcodes{% - \RestoreCatcodes - \catcode\the\count@=\the\catcode\count@\relax - }% -\ifnum\count@<255 % - \advance\count@ 1 % -\repeat - -\def\RangeCatcodeInvalid#1#2{% - \count@=#1\relax - \loop - \catcode\count@=15 % - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\RangeCatcodeCheck#1#2#3{% - \count@=#1\relax - \loop - \ifnum#3=\catcode\count@ - \else - \errmessage{% - Character \the\count@\space - with wrong catcode \the\catcode\count@\space - instead of \number#3% - }% - \fi - \ifnum\count@<#2\relax - \advance\count@ 1 % - \repeat -} -\def\space{ } -\expandafter\ifx\csname LoadCommand\endcsname\relax - \def\LoadCommand{\input uniquecounter.sty\relax}% -\fi -\def\Test{% - \RangeCatcodeInvalid{0}{47}% - \RangeCatcodeInvalid{58}{64}% - \RangeCatcodeInvalid{91}{96}% - \RangeCatcodeInvalid{123}{255}% - \catcode`\@=12 % - \catcode`\\=0 % - \catcode`\%=14 % - \LoadCommand - \RangeCatcodeCheck{0}{36}{15}% - \RangeCatcodeCheck{37}{37}{14}% - \RangeCatcodeCheck{38}{47}{15}% - \RangeCatcodeCheck{48}{57}{12}% - \RangeCatcodeCheck{58}{63}{15}% - \RangeCatcodeCheck{64}{64}{12}% - \RangeCatcodeCheck{65}{90}{11}% - \RangeCatcodeCheck{91}{91}{15}% - \RangeCatcodeCheck{92}{92}{0}% - \RangeCatcodeCheck{93}{96}{15}% - \RangeCatcodeCheck{97}{122}{11}% - \RangeCatcodeCheck{123}{255}{15}% - \RestoreCatcodes -} -\Test -\csname @@end\endcsname -\end -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -% -% \subsection{Macro tests} -% -% \subsubsection{Test with \LaTeX} -% -% \begin{macrocode} -%<*test2> -\NeedsTeXFormat{LaTeX2e} -\nofiles -\documentclass{minimal} -\usepackage{uniquecounter}[2016/05/16] -\usepackage{qstest} -\IncludeTests{*} -\LogTests{log}{*}{*} - -\newcommand*{\CheckValue}[2]{% - \Expect*{#2}*{\UniqueCounterGet{#1}}% -} -\newcommand*{\CheckSpace}[1]{% - \sbox0{#1}% - \Expect{0.0pt}*{\the\wd0}% -} - -\begin{qstest}{creation}{creation} - \CheckSpace{% - \UniqueCounterNew{test}% - }% - \CheckValue{test}{0}% -\end{qstest} - -\begin{qstest}{increment}{increment} - \CheckSpace{% - \UniqueCounterIncrement{test}% - }% - \CheckValue{test}{1}% - \makeatletter - \def\uqc@cnt@test{2147483645}% - \CheckValue{test}{2147483645}% - \CheckSpace{% - \UniqueCounterIncrement{test}% - }% - \CheckValue{test}{2147483646}% - \CheckSpace{% - \UniqueCounterIncrement{test}% - }% - \Expect{true}*{\ifx\uqc@inc\uqc@NumInc true\else false\fi}% - \CheckValue{test}{2147483647}% - \CheckSpace{% - \UniqueCounterIncrement{test}% - }% - \CheckValue{test}{2147483648}% - \CheckSpace{% - \UniqueCounterIncrement{test}% - }% - \CheckValue{test}{2147483649}% -\end{qstest} - -\begin{qstest}{call}{call} - \def\CheckCall#1#2{% - \Expect{#1}{#2}% - }% - \CheckSpace{% - \UniqueCounterNew{foo}% - }% - \CheckValue{foo}{0}% - \def\Check#1{% - \CheckSpace{% - \UniqueCounterCall{foo}{\CheckCall}{#1}% - }% - \CheckValue{foo}{#1}% - }% - \Check{1}% - \Check{2}% - \Check{3}% - \Check{4}% - \Check{5}% - \Check{6}% - \Check{7}% - \Check{8}% - \Check{9}% - \Check{10}% - \Check{11}% - \Check{12}% -\end{qstest} - -\csname @@end\endcsname -% -% \end{macrocode} -% \subsubsection{Test with plain-\TeX} -% -% \begin{macrocode} -%<*test3> -\input uniquecounter.sty\relax -\catcode`\@=11 % -\def\CheckValue#1#2{% - \begingroup - \edef\A{#2}% - \edef\B{\UniqueCounterGet{#1}}% - \ifx\A\B - \else - \@PackageError{TEST}{Failed: \A\space<> \B}\@ehc - \fi - \endgroup -} -\def\CheckSpace#1{% - \setbox0=\hbox{#1}% - \ifdim\wd0=\z@ - \else - \@PackageError{TEST}{Failed: 0.0pt <> \the\wd0}\@ehc - \fi -} - -\begingroup - \CheckSpace{% - \UniqueCounterNew{test}% - }% - \CheckValue{test}{0}% -\endgroup - -\begingroup - \CheckSpace{% - \UniqueCounterIncrement{test}% - }% - \CheckValue{test}{1}% - \def\uqc@cnt@test{2147483645}% - \CheckValue{test}{2147483645}% - \CheckSpace{% - \UniqueCounterIncrement{test}% - }% - \CheckValue{test}{2147483646}% - \CheckSpace{% - \UniqueCounterIncrement{test}% - }% - \ifx\uqc@inc\uqc@NumInc - \else - \@PackageError{TEST}{Failed: wrong inc function}\@ehc - \fi - \CheckValue{test}{2147483647}% - \CheckSpace{% - \UniqueCounterIncrement{test}% - }% - \CheckValue{test}{2147483648}% - \CheckSpace{% - \UniqueCounterIncrement{test}% - }% - \CheckValue{test}{2147483649}% -\endgroup -\begingroup - \def\CheckCall#1#2{% - \begingroup - \def\A{#1}% - \def\B{#2}% - \ifx\A\B - \else - \@PackageError{TEST}{Failed: \A\space <> \B}\@ehc - \fi - \endgroup - }% - \CheckSpace{% - \UniqueCounterNew{foo}% - }% - \CheckValue{foo}{0}% - \CheckSpace{% - \UniqueCounterCall{foo}{\CheckCall}{1}% - }% - \CheckSpace{% - \UniqueCounterCall{foo}{\CheckCall}{2}% - }% - \CheckValue{foo}{2}% -\endgroup -\csname @@end\endcsname\end -% -% \end{macrocode} -% -% \section{Installation} +%% \section{Installation} % % \subsection{Download} % @@ -864,9 +558,6 @@ and the derived files % uniquecounter.sty & tex/generic/oberdiek/uniquecounter.sty\\ % uniquecounter.pdf & doc/latex/oberdiek/uniquecounter.pdf\\ % uniquecounter-example.tex & doc/latex/oberdiek/uniquecounter-example.tex\\ -% test/uniquecounter-test1.tex & doc/latex/oberdiek/test/uniquecounter-test1.tex\\ -% test/uniquecounter-test2.tex & doc/latex/oberdiek/test/uniquecounter-test2.tex\\ -% test/uniquecounter-test3.tex & doc/latex/oberdiek/test/uniquecounter-test3.tex\\ % uniquecounter.dtx & source/latex/oberdiek/uniquecounter.dtx\\ % \end{tabular}^^A % }^^A diff --git a/macros/latex/contrib/oberdiek/uniquecounter.pdf b/macros/latex/contrib/oberdiek/uniquecounter.pdf index cf39951e59..78158e1f15 100644 Binary files a/macros/latex/contrib/oberdiek/uniquecounter.pdf and b/macros/latex/contrib/oberdiek/uniquecounter.pdf differ -- cgit v1.2.3