% \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 % %<*install> \input docstrip \keepsilent \preamble \endpreamble \askforoverwritefalse \generate{ %<*ignore> \file{ifpdf.ins}{\from{ifpdf.dtx}{install}} % \file{ifpdf.sty}{\from{ifpdf.dtx}{package}} } \endbatchfile % %<*dtx> \ProvidesFile{ifpdf.dtx} % %<*!install> %\ifnum1=0\ifx\ProvidesPackage\undefined1\else\ifx\ProvidesPackage\relax1\fi\fi %\def\next#1#2[#3]{\wlog{#2 #3}\expandafter\gdef %\csname ver\string @ifpdf.sty\endcsname{#3}} %\expandafter\next\fi %\ProvidesPackage{ifpdf}% % \ProvidesFile{ifpdf.drv} % \fi % \ProvidesFile{ifpdf.dtx} [2018/09/07 v3.3 Provides the ifpdf switch] % \iffalse % % %<*driver> \documentclass{ltxdoc} \usepackage{hyperref} \begin{document} \tableofcontents \DocInput{ifpdf.dtx} \end{document} % % \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} % % \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