ifpdf.sty revision 6a4fa2d53294f484fa8788a75656eff4ad1fd703
% 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