summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/iftex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-11-10 03:01:01 +0000
committerNorbert Preining <norbert@preining.info>2019-11-10 03:01:01 +0000
commit838842fa4625160270947ca654e7492e3c7afc44 (patch)
treef0e66df5245b9f6b82f11152282ed9c60a5faeca /macros/latex/contrib/iftex
parent89213117b5298d9493446422708bf48384368825 (diff)
CTAN sync 201911100301
Diffstat (limited to 'macros/latex/contrib/iftex')
-rw-r--r--macros/latex/contrib/iftex/iftex.pdfbin201807 -> 233649 bytes
-rw-r--r--macros/latex/contrib/iftex/iftex.sty54
-rw-r--r--macros/latex/contrib/iftex/iftex.tex17
3 files changed, 48 insertions, 23 deletions
diff --git a/macros/latex/contrib/iftex/iftex.pdf b/macros/latex/contrib/iftex/iftex.pdf
index c46ce713ae..97c093e87f 100644
--- a/macros/latex/contrib/iftex/iftex.pdf
+++ b/macros/latex/contrib/iftex/iftex.pdf
Binary files differ
diff --git a/macros/latex/contrib/iftex/iftex.sty b/macros/latex/contrib/iftex/iftex.sty
index 4c1923c2c1..8ee4a0fe79 100644
--- a/macros/latex/contrib/iftex/iftex.sty
+++ b/macros/latex/contrib/iftex/iftex.sty
@@ -30,7 +30,7 @@
% ProvidesPackage declaration in LaTeX
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname ProvidesPackage\endcsname\relax\else
- \ProvidesPackage{iftex}[2019/11/04 v1.0b TeX engine tests]
+ \ProvidesPackage{iftex}[2019/11/07 v1.0c TeX engine tests]
\fi
% Save @ catcode, to restore at end, not needed in LaTeX.
@@ -54,7 +54,8 @@
% eTeX \protected if available.
-\ifx\protected\@undefined
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname protected\endcsname\relax
\let\IFTEX@protected\relax
\else
\let\IFTEX@protected\protected
@@ -68,7 +69,7 @@
\catcode41 12 % )
\catcode44 12 % ,
\catcode46 12 % .
- \ifx\directlua\@undefined\else
+ \expandafter\ifx\csname directlua\endcsname\relax\else
\directlua{tex.enableprimitives("IFTEX@", {"detokenize","protected"})}
\fi
}
@@ -99,7 +100,8 @@
\csname if#2\endcsname}
% etex (should always be true in latex based formats)
-\ifx\numexpr\@undefined
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname numexpr\endcsname\relax
\IFTEX@let{etex}{false}
\else
\IFTEX@let{etex}{true}
@@ -108,7 +110,8 @@
% pdftex (including in dvi mode)
\IFTEX@let{IFTEX@savedpdftex}{pdftex}
-\ifx\pdftexversion\@undefined
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname pdftexversion\endcsname\relax
\IFTEX@let{pdftex}{false}
\else
\IFTEX@let{pdftex}{true}
@@ -116,7 +119,8 @@
\IFTEX@let{PDFTeX}{pdftex}
% xetex
-\ifx\XeTeXrevision\@undefined
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname XeTeXrevision\endcsname\relax
\IFTEX@let{xetex}{false}
\else
\IFTEX@let{xetex}{true}
@@ -125,18 +129,21 @@
% luatex (including luahbtex)
-\ifx\directlua\@undefined
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname directlua\endcsname\relax
\IFTEX@let{luatex}{false}
\else
\IFTEX@let{luatex}{true}
\fi
\IFTEX@let{LuaTeX}{luatex}
+
% luahbtex (or luatex + luaharfbuzz)
% Use luaharfbuzz test rather than status.luatex_engine=="luahbtex"
% for issue #2.
\IFTEX@let{luahbtex}{false}
-\ifx\directlua\@undefined
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname directlua\endcsname\relax
\else
\directlua{\IFTEX@detokenize{
if(pcall(require, 'luaharfbuzz')) then
@@ -149,7 +156,8 @@
% ptex (including all variants)
-\ifx\kanjiskip\@undefined
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname kanjiskip\endcsname\relax
\IFTEX@let{ptex}{false}
\else
\IFTEX@let{ptex}{true}
@@ -165,7 +173,8 @@
\IFTEX@let{upTeX}{uptex}
% ptex-ng
-\ifx\ngbanner\@undefined
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname ngbanner\endcsname\relax
\IFTEX@let{ptexng}{false}
\else
\IFTEX@let{ptexng}{true}
@@ -174,7 +183,8 @@
% vtex
\IFTEX@let{IFTEX@savedVTeX}{VTeX}
-\ifx\VTeXversion\@undefined
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname VTeXversion\endcsname\relax
\IFTEX@let{vtex}{false}
\else
\IFTEX@let{vtex}{true}
@@ -184,7 +194,8 @@
% aleph
\IFTEX@let{alephtex}{false}
\ifptex\else
-\ifx\omathchardef\@undefined
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname omathchardef\endcsname\relax
\else
\IFTEX@let{alephtex}{true}
\fi
@@ -193,21 +204,26 @@
% tutex (LuaTeX or XeTeX)
-\ifx\Umathchardef\@undefined
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname Umathchardef\endcsname\relax
\IFTEX@let{tutex}{false}
\else
\IFTEX@let{tutex}{true}
\fi
\IFTEX@let{TUTeX}{tutex}
-
-
% Output mode
% declare with as if with \newif
\def\pdftrue{\let\ifpdf\iftrue}
\def\pdffalse{\let\ifpdf\iffalse}
\pdffalse
-\ifx\directlua\undefined
+\ifluatex
+\directlua{\IFTEX@detokenize{
+if (tex.outputmode or tex.pdfoutput or 0) > 0 then
+ tex.print('\\pdftrue')
+end
+}}
+\else
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname pdfoutput\endcsname\relax
\ifvtex
@@ -220,12 +236,6 @@
\pdftrue
\fi
\fi
-\else
-\directlua{\IFTEX@detokenize{
-if (tex.outputmode or tex.pdfoutput or 0) > 0 then
- tex.print('\\pdftrue')
-end
-}}
\fi
diff --git a/macros/latex/contrib/iftex/iftex.tex b/macros/latex/contrib/iftex/iftex.tex
index 67703b93c5..8e13546e77 100644
--- a/macros/latex/contrib/iftex/iftex.tex
+++ b/macros/latex/contrib/iftex/iftex.tex
@@ -39,7 +39,7 @@ engine (or a compatible extension) is being used.
For compatibility with earlier packages which did not all use the same
naming convention all these conditionals are provided in two forms, a
-lowercase name \verb|\iffootex| and a mixed case name \verb|\ifooTeX|.
+lowercase name \verb|\iffootex| and a mixed case name \verb|\iffooTeX|.
\item a command \verb|RequireFooTeX| which checks that \textsf{footex}
is being used, and stops the run with an error message if a
@@ -181,4 +181,19 @@ tests for p\TeX\ variants and this package does \emph{not} replace the
by their original authors and recommended for Japanese documents that
need fine control over the Japanese \TeX\ system in use.
+\section{Compatibility with \textsf{scrbase}}
+The \textsf{scrbase} package (which is automatically included in the
+popular \textsf{KOMA-Script} classes) by default defines
+\verb|\ifpdftex| and \verb|\ifVTeX| with a different syntax. If you
+use the \textsf{scrbase} option \verb|internalonly| then
+\textsf{scrbase} will not define these and the definitions as
+described here will take effect. This is recommended and will not
+affect any \textsf{scrbase} package code as internally
+\textsf{scrbase} uses private versions of those commands prefixed with
+\verb|\scr@|. However this package detects if the \textsf{scrbase}
+definitions are in effect and if so does not redefine them, for
+compatibility with existing documents. The \textsf{iftex} versions
+will still be available under the names \verb|\ifPDFTeX| and
+\verb|\ifvtex|.
+
\end{document}