blob: db7de6a05a4e99a8bf35a616341d19e28da0c429 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
% \iffalse
%% Source File: ifpdf.dtx
%% Copyright 2016 Heiko Oberdiek and LaTeX3 project
%%
%% This file may be distributed under the terms of the LPPL.
%% See README for details.
%
%<*dtx>
\ProvidesFile{ifpdf.dtx}
%</dtx>
%<package>\ifx\ProvidesPackage\undefined
%<package>\def\next#1#2[#3]{\wlog{#2 #3}\expandafter\gdef
%<package>\csname ver@ifpdf.sty\endcsname{#3}}
%<package>\expandafter\next\fi
%<package>\ProvidesPackage{ifpdf}
%<driver> \ProvidesFile{ifpdf.drv}
% \fi
% \ProvidesFile{ifpdf.dtx}
[2016/05/14 v3.1 Provides the ifpdf switch]
%
% \iffalse
%<*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.
|