% File: ifpdf.sty % Version: 2001/07/14 v1.1 % Author: Heiko Oberdiek % Email: % % 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