diff options
Diffstat (limited to 'macros/latex/contrib/oberdiek/ifpdf.dtx')
-rw-r--r-- | macros/latex/contrib/oberdiek/ifpdf.dtx | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/macros/latex/contrib/oberdiek/ifpdf.dtx b/macros/latex/contrib/oberdiek/ifpdf.dtx new file mode 100644 index 0000000000..1aa3502128 --- /dev/null +++ b/macros/latex/contrib/oberdiek/ifpdf.dtx @@ -0,0 +1,143 @@ +% \iffalse +%% Source File: ifpdf.dtx +%% Copyright 2016-2018 Heiko Oberdiek and LaTeX3 project +%% +%% This file may be distributed under the terms of the LPPL. +%% https://www.latex-project.org/lppl/ +% +%<*ignore> +\ifx\ProvidesFile\undefined\let\install y\fi +\ifx\install y\else +\long\def\tmp#1\endbatchfile{} +\expandafter\tmp +\fi +%</ignore> +%<*install> +\input docstrip +\keepsilent +\preamble +\endpreamble + +\askforoverwritefalse + +\generate{ +%<*ignore> +\file{ifpdf.ins}{\from{ifpdf.dtx}{install}} +%</ignore> +\file{ifpdf.sty}{\from{ifpdf.dtx}{package}} +} + +\endbatchfile +%</install> +%<*dtx> + \ProvidesFile{ifpdf.dtx} +%</dtx> +%<*!install> +%<package>\ifnum1=0\ifx\ProvidesPackage\undefined1\else\ifx\ProvidesPackage\relax1\fi\fi +%<package>\def\next#1#2[#3]{\wlog{#2 #3}\expandafter\gdef +%<package>\csname ver\string @ifpdf.sty\endcsname{#3}} +%<package>\expandafter\next\fi +%<package>\ProvidesPackage{ifpdf}% +%<driver> \ProvidesFile{ifpdf.drv} +% \fi +% \ProvidesFile{ifpdf.dtx} +[2018/09/07 v3.3 Provides the ifpdf switch] +% \iffalse +%</!install> +% +%<*driver> +\documentclass{ltxdoc} +\usepackage{hyperref} +\begin{document} +\tableofcontents +\DocInput{ifpdf.dtx} +\end{document} +%</driver> +% \fi +% +% \GetFileInfo{ifpdf.dtx} +% +% \title{The \textsf{ifpdf} Package\thanks{This file +% has version number \fileversion, last +% revised \filedate. +% Please report any issues at https://github.com/ho-tex/oberdiek/issues}} +% \author{LaTeX3 project} +% \date{\filedate} +% \maketitle +% +% \section{Introduction} +% +% A re-implementation of Heiko Oberdiek's \textsf{ifpdf} package +% with simplified structure and updated to work with current Lua\TeX. +% +% The package defines a new boolean, \verb|\ifpdf| which is true +% for pdf\TeX\ and Lua\TeX\ in PDF mode, and false otherwise. +% +% \section{Implementation} +% +% \begin{macrocode} +%<*package> +% \end{macrocode} +% +% If \verb|\ifpdf| is not defined define it, taking care that it is +% outer in plain \TeX. +% \begin{macrocode} +\expandafter\ifx\csname ifpdf\endcsname\relax + \csname newif\expandafter\endcsname\csname ifpdf\endcsname +\else +% \end{macrocode} +% If \verb|\ifpdf| is already defined but \verb|\pdftrue| is not defined +% give up. +% \begin{macrocode} + \ifx\pdftrue\undefined + \ifx\PackageError\undefined + \begingroup\def\PackageError#1#2#3{\endgroup\errmessage{#2}} + \fi + \PackageError{ifpdf}{incompatible ifpdf definition}{} + \expandafter\expandafter\expandafter + \fi +\fi +% \end{macrocode} +% Otherwise set the boolean to false unless pdfoutput (outputmode) is greater than zero. +% For Lua\TeX, do the test in Lua as the tex primitivies may not be enabled, and +% the primitive name may be \verb|\pdfoutput| or \verb|\outputmode| depending +% on the Lua\TeX\ version number. +% \begin{macrocode} +\let\ifpdf\iffalse +% \end{macrocode} +% +% \begin{macrocode} +\ifx\directlua\undefined +% \end{macrocode} +% Not Lua\TeX. +% \begin{macrocode} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname pdfoutput\endcsname\relax +\else + \ifnum\pdfoutput>0 % + \pdftrue + \fi +\fi +\else +% \end{macrocode} +% Lua\TeX. +% \begin{macrocode} +\directlua{% +if (tex.outputmode or tex.pdfoutput or 0) > 0 then + tex.print('\string\\pdftrue') +end +} +\fi +% \end{macrocode} +% +% \begin{macrocode} +%</package> +% \end{macrocode} +% +% \endinput +% 2016/04/04 v3.0 rewrite to be self standing and work with new luatex/ +% 2016/05/14 v3.1 define ver@ifpdf.sty in plain tex. +% 2017/03/15 v3.2 define ver\string@ifpdf.sty in amstex tex. +% https://github.com/ho-tex/oberdiek/issues/23 +% 2018/09/07 v3.3 guard against \ProvidesPackage being \relax +% https://github.com/ho-tex/oberdiek/issues/38 |