[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#428631: hyperref should autodetect pdftex even with a driver option



On Tue, Jun 12, 2007 at 20:25 -0700, Zack Weinberg wrote:
> Package: texlive-latex-base
> Version: 2007-9
> Severity: minor
> 
> The hyperref package has to generate different \specials for different
> DVI drivers; in particular, xdvi and dvips want "dvips" specials, and pdftex
> wants "pdftex" specials.  These correspond to package options.  If you don't
> give hyperref any package option, it autodetects pdftex; but if you do give
> it the [dvips] option, it doesn't check for pdftex.  This causes a flood of
> warning messages and nonfunctional hyperlinks in the output if you run a
> file with \usepackage[dvips]{hyperref} through pdflatex.  I habitually
> render my files as DVI during composition (because xdvi is nicer to use than
> evince alongside an Emacs composition buffer) but use pdflatex for final
> output (since I am usually sending the files to people for whom PDF is a
> much more convenient format than PS or DVI), so this is really annoying.
> I have to put gunk like this in my preamble:
> 
> \makeatletter
> \ifx\pdfpagewidth\@undefined
> \usepackage[dvips]{hyperref}
> \else\ifnum\pdfoutput=\@ne
> \usepackage[pdftex]{hyperref}
> \else     
> \usepackage[dvips]{hyperref}
> \fi
> \fi
> \makeatother

See the ifpdf.sty package for a more robust check.
 
> It would be much better to behave the way geometry does: even if
> given [dvips], that package checks for pdftex, and overrides the driver
> option if it finds it.

The simple solution is to leave out the driver. As you already
noticed, pdftex is autodetected, so there is no need to specify
it. The default driver is specified in hyperref.cfg, which is
dvips.

BTW, geometry is the odd one here. All other packages that I have
seen, including base packages like color or graphics behave like
hyperref, ie, if you specify a driver, then this driver is used. But
in many cases it is not necessary to do so.

cheerio
ralf



Reply to: