diff options
Diffstat (limited to 'obsolete/macros/latex/contrib/ifetex/ifetex.dtx')
-rw-r--r-- | obsolete/macros/latex/contrib/ifetex/ifetex.dtx | 235 |
1 files changed, 235 insertions, 0 deletions
diff --git a/obsolete/macros/latex/contrib/ifetex/ifetex.dtx b/obsolete/macros/latex/contrib/ifetex/ifetex.dtx new file mode 100644 index 0000000000..fdcd4d814e --- /dev/null +++ b/obsolete/macros/latex/contrib/ifetex/ifetex.dtx @@ -0,0 +1,235 @@ +% \iffalse meta-comment +%<=*COPYRIGHT> +%% Copyright (C) 2011-2018 by Martin Scharrer <martin@scharrer-online.de> +%% --------------------------------------------------------------------------- +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Martin Scharrer. +%% +%% This work consists of the files ifetex.dtx and ifetex.ins +%% and the derived filebase ifetex.sty. +%% +%<=/COPYRIGHT> +% \fi +% +% \iffalse +%<*driver> +\ProvidesFile{ifetex.dtx}[% +%<=*DATE> + 2018/03/31 +%<=/DATE> +%<=*VERSION> + v1.2a +%<=/VERSION> + Conditional to test for e-TeX] +\documentclass{ydoc} +\GetFileInfo{ifetex.dtx} +\usepackage{ifetex}[\filedate] +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\begin{document} + \DocInput{\jobname.dtx} + \PrintChanges + \PrintIndex +\end{document} +%</driver> +% \fi +% +% \CheckSum{73} +% +% \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 \~} +% +% +% \changes{v1.0}{2011/10/31}{First version.} +% \changes{v1.1}{2011/11/06}{Changes to manual, local declaration of \cs{ifetex}.} +% \changes{v1.2}{2011/12/15}{Added \cs{NeedsETeX} \protect\LaTeX\ macro.} +% \changes{v1.2a}{2018/03/31}{Improvements to manual.} +% +% +% \DoNotIndex{\newcommand,\newenvironment} +% +% \GetFileInfo{ifetex.dtx} +% \author{Martin Scharrer} +% \email{martin@scharrer-online.de} +% +% \maketitle +% +% \providecommand\eTeX{$\epsilon$-\TeX} +% \begin{abstract}\noindent +% This small package provides the if-switch \Macro\ifetex which +% indicated whether \eTeX\ is available or not. +% \end{abstract} +% +% \smallskip +% \begin{multicols}{2} +% \setcounter{tocdepth}{2} +% \tableofcontents +% \end{multicols} +% +% \section*{Links} +% This package is developed using an +% \href{https://bitbucket.org/martin_scharrer/ifetex/downloads/}{Mercurial} +% (HG) revision control repository on \href{https://bitbucket.org/}{Bitbucket.org}. +% It is published on the \href{http://www.ctan.org/}{Comprehensive \TeX\ Archive Network} (CTAN) +% and available with the main \TeX\ distributions \TeX Live and Mik\TeX. +% +% Bug reports and feature requests should be submitted using the issue tracker linked below. +% +% The following table lists the location of the package, its downloadable files, both on CTAN and +% on the package website. +% +% \begin{center}\small +% \begin{tabular}{ll} +% \toprule +% CTAN & \small\url{https://www.ctan.org/pkg/ifetex}\\ +% PDF Manual & \small\url{http://mirrors.ctan.org/macros/latex/contrib/ifetex/ifetex.pdf}\\ +% TDS ZIP & \small\url{http://mirrors.ctan.org/install/macros/latex/contrib/ifetex.tds.zip}\\ +% \midrule +% Website & \small\url{https://bitbucket.org/martin_scharrer/ifetex/}\\ +% HG Repository & \small\url{https://bitbucket.org/martin_scharrer/ifetex/}\\ +% Issue Tracker & \small\url{https://bitbucket.org/martin_scharrer/ifetex/issues}\\ +% Downloads & \small\url{https://bitbucket.org/martin_scharrer/ifetex/downloads/}\\ +% PDF Manual & \small\url{https://bitbucket.org/martin_scharrer/ifetex/downloads/ifetex.pdf}\\ +% TDS ZIP & \small\url{https://bitbucket.org/martin_scharrer/ifetex/downloads/ifetex.tds.zip}\\ +% Source ZIP & \small\url{https://bitbucket.org/martin_scharrer/ifetex/downloads/ifetex.zip}\\ +% \bottomrule +% \end{tabular} +% \end{center} +% +% +% +% \clearpage +% \section{Usage} +% The package can be loaded as \LaTeX\ package using \Macro\usepackage{ifetex} or in plain\TeX\ using \Macro\input' ifetex'. +% In both cases it aborts silently if the \Macro\ifetex macro is already defined. +% +% The package currently test if \Macro\eTeXversion is defined as a primitive and assumes \eTeX\ if so. +% +% Note that almost all modern \LaTeX\ distributions use \eTeX. +% The two major distributions \TeX\ Live and Mik\TeX\ support it and use it by default (except for the classic |tex|). +% The \LaTeX\ which comes with \emph{Scientific Work Place} by MacKichan seems to not support \eTeX\ yet. +% Package authors can use this package to test for missing \eTeX\ and provide fall-back code. +% +% \DescribeMacro\ifetex +% Equal to \Macro\iftrue if \eTeX\ support is present and \Macro\iffalse otherwise. +% +% \DescribeMacro\NeedsETeX[<version>] +% The \LaTeX\ package provides this macro which can be used in packages or classes to produce an error if \eTeX\ is not available, +% similar to \Macro\NeedsTeXFormat. In addition an optional version number can be given in the format x.y, where x is the main version and y the revision. +% This number is checked against \Macro\eTeXversion and \Macro\eTeXrevision and an appropriate error is raised if the available +% \eTeX\ is too old. +% +% \StopEventually{} +% \clearpage +% \section{Implementation} +% +% \subsection{\texttt{ifetex.sty}} +% \iffalse +%<*ifetex.sty> +% \fi +% \begin{macrocode} +%<!COPYRIGHT> +\ProvidesPackage{ifetex}[% +%<!DATE> +%<!VERSION> +%<*DRIVER> + 2099/01/01 develop +%</DRIVER> + ifetex] +% \end{macrocode} +% +% \begin{macrocode} +\@@input ifetex +% \end{macrocode} +% +% +% \begin{macro}{\NeedsETeX}[1]{optional version number (x.y)} +% Produces error if e-TeX is not available or if its version is too old. +% \begin{macrocode} +\newcommand*\NeedsETeX[1][]{% + \ifetex + \ifx\@nnil#1\@nnil\else + \ifdim\the\eTeXversion\eTeXrevision\p@<#1\p@\relax + \@latex@error{This file needs e-TeX with version #1% + \MessageBreak but only version \the\eTeXversion\eTeXrevision is available}{% + The current input file will not be processed + further,\MessageBreak + because it was written for a newer version of e-TeX. + \MessageBreak\@ehd}% + \endinput + \fi\fi + \else + \@latex@error{This file needs e-TeX}{% + The current input file will not be processed + further,\MessageBreak + because it was written for e-TeX which is not available. + \MessageBreak\@ehd}% + \endinput + \fi +} +% \end{macrocode} +% \end{macro} +% +% \iffalse +%</ifetex.sty> +% \fi +% +% \subsection{\texttt{ifetex.tex}} +% \iffalse +%<*ifetex.tex> +% \fi +% \begin{macrocode} +%<!COPYRIGHT> +% \end{macrocode} +% +% Abort if \Macro{ifetex} is already defined. +% \begin{macrocode} +\expandafter\ifx\csname ifetex\endcsname\relax\else + \expandafter\endinput +\fi +% \end{macrocode} +% +% \begin{macro}{ifetex} +% Checks if \Macro\eTeXversion is a primitive. +% \begin{macrocode} +\begingroup +\edef\tempa{\meaning\eTeXversion}% +\edef\tempb{\string\eTeXversion}% +\ifx\tempa\tempb + \endgroup + \expandafter\let\csname ifetex\expandafter\endcsname\csname iftrue\endcsname +\else + \endgroup + \expandafter\let\csname ifetex\expandafter\endcsname\csname iffalse\endcsname +\fi +% \end{macrocode} +% \end{macro} +% \iffalse +%</ifetex.tex> +% \fi +% +% \Finale +\endinput |