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 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
|
% File: ifpdf.sty
% Version: 2001/07/14 v1.1
% Author: Heiko Oberdiek
% Email: <oberdiek@uni-freiburg.de>
%
% Copyright: Copyright (C) 2001 Heiko Oberdiek.
%
% This program may be distributed and/or modified under
% the conditions of the LaTeX Project Public License,
% either version 1.2 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.2 or later is part of all distributions
% of LaTeX version 1999/12/01 or later.
%
% Function: This packages looks for pdfTeX in pdf mode and
% implements and sets the switch \ifpdf.
% The detection is based on \pdfoutput and
% the package will not change this value.
% It works with plain or LaTeX formats.
%
% Use: LaTeX: \usepackage{ifpdf}
% plain: \input ifpdf.sty
% The package provides the switch \ifpdf:
% \ifpdf
% ... do things, if pdfTeX is running in pdf mode ...
% \else
% ... other TeX or pdfTeX in dvi mode ...
% \fi
% The package can also be used to set global
% documentclass options:
% \RequirePackage{ifpdf}
% \ifpdf
% \documentclass[pdftex,...]{...}
% \else
% \documentclass[...]{...}
% \fi
%
% History: 2001/06/14 v1.0:
% * first public version,
% 2001/07/14 v1.1:
% * documentation addition: global options
%
% Prevent reloading more than one:
\begingroup
\expandafter\let\expandafter\x\csname ver@ifpdf.sty\endcsname
\ifcase 0%
\ifx\x\relax % plain
\else
\ifx\x\empty % LaTeX
\else
1%
\fi
\fi
\else
\expandafter\ifx\csname PackageInfo\endcsname\relax
\def\x#1#2{%
\immediate\write-1{Package #1 Info: #2.}%
}%
\else
\def\x#1#2{\PackageInfo{#1}{#2, stopped}}%
\fi
\x{ifpdf}{The package is already loaded}%
\endgroup
\expandafter\endinput
\fi
\endgroup
%
% Package identification:
\begingroup
\expandafter\ifx\csname ProvidesPackage\endcsname\relax
\def\x#1#2#3[#4]{\endgroup
\immediate\write-1{Package: #3 #4}%
\xdef#1{#4}%
}%
\else
\def\x#1#2[#3]{\endgroup
#2[#3]%
\ifx#1\relax
\xdef#1{#3}%
\fi
}%
\fi
\expandafter\x\csname ver@ifpdf.sty\endcsname
\ProvidesPackage{ifpdf}%
[2001/06/14 v1.0 %
Providing \expandafter\string\csname ifpdf\endcsname\space (HO)]
%
% Check, whether \ifpdf is already defined:
\begingroup
\expandafter\ifx\csname ifpdf\endcsname\relax
\else
\edef\i/{\expandafter\string\csname ifpdf\endcsname}%
\expandafter\ifx\csname PackageError\endcsname\relax
\def\x#1#2{%
\edef\z{#2}%
\expandafter\errhelp\expandafter{\z}%
\errmessage{Package ifpdf Error: #1}%
}%
\def\y{^^J}%
\newlinechar=10
\else
\def\x#1#2{%
\PackageError{ifpdf}{#1}{#2}%
}%
\def\y{\MessageBreak}%
\fi
\x{Name clash, \i/ is already defined}{%
Incompatible versions of \i/ can cause problems,\y
therefore package loading is aborted.%
}%
\endgroup
\expandafter\endinput
\fi
\endgroup
%
% Implementing the switch:
\newif\ifpdf
\ifx\pdfoutput\undefined
\else
\ifx\pdfoutput\relax
\else
\ifcase\pdfoutput
\else
\pdftrue
\fi
\fi
\fi
%
% Log comment:
\begingroup
\expandafter\ifx\csname PackageInfo\endcsname\relax
\def\x#1#2{%
\immediate\write-1{Package #1 Info: #2.}%
}%
\else
\let\x\PackageInfo
\fi
\x{ifpdf}{pdfTeX in pdf mode \ifpdf\else not \fi detected}%
\endgroup
\endinput
|