*** Please type your report below this line ***
When rubber intends to post process a dvi file (e.g. with dvips of
dvipdfm) then it should create a dvi file optimized for the post
processor. This means that packages (hyperref, graphicx,
grapphics, color etc.) should use the appropriate driver.
As far as I know, latex does not provide a way to specify the post
processor on the command line, which makes a general solution
impossible. However, most of the packages accept the post processor
as option. So simply making the post processor a global option of
the
document class does the trick in most cases (for packages graphics,
graphicx, color, xcolor, pgf). This can be achieved by
latex '\let\originaldocumentclass\documentclass\renewcommand{\documentclass}[1][]{\originaldocumentclass[POST,#1]}\input{FILE}'
where we want to latex FILE to obtain a dvi file for post processor
POST.
(The idea is to redefine \documentlcass such that it behaves as if
POST was an option of it. I don't know a simpler way of doing
this, e.g.
latex '\PassOptionsToClass{POST}{CLASS}\input{FILE}'
where CLASS is the document class does not work. This may be
related to bug latex/2542 of the LaTeX bugs database.)
Test file test.tex:
\documentclass{article}
\usepackage{graphicx}
\usepackage{color}
\usepackage{hyperref}
\begin{document}
\section{Some graphics}
\label{sec:some-graphics}
\textcolor{red}{This is a red text.}
\textcolor{green}{This is greeen.}
\end{document}
File ~/texmf/tex/latex/config/hyperref.cfg:
\ProvidesFile{hyperref.cfg}%
[2005/06/27 personal hyperref configuration]
\providecommand*{\Hy@defaultdriver}{hypertex}%
\endinput
Let us compare the following commands. We check the used drivers in
the log file. First we check rubber:
gabor@gabor ~/tmp/rubber$ rubber -o dvips test.tex
compiling test.tex...
compiling test.tex...
running dvips on test.dvi...
gabor@gabor ~/tmp/rubber$ grep '[Dd]river' test.log
Package graphics Info: Driver file: dvips.def on input line 80.
File: dvips.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
Package color Info: Driver file: dvips.def on input line 125.
File: dvipsnam.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
*hyperref using default driver hypertex*
File: hypertex.def 2003/11/30 v6.74m Hyperref driver for HyperTeX
specials
The driver for hyperref is bad, hdvips should have been used.
gabor@gabor ~/tmp/rubber$ rubber --clean -o dvips test.tex
gabor@gabor ~/tmp/rubber$ rubber -o dvipdfm test.tex
compiling test.tex...
compiling test.tex...
running dvipdfm on test.dvi...
gabor@gabor ~/tmp/rubber$ grep '[Dd]river' test.log
Package graphics Info: Driver file: dvips.def on input line 80.
File: dvips.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
Package color Info: Driver file: dvips.def on input line 125.
File: dvipsnam.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
*hyperref using default driver hypertex*
File: hypertex.def 2003/11/30 v6.74m Hyperref driver for HyperTeX
specials
All three packages use the wrong driver.
Let us check what happens if we use my suggestion for the command
line for latex:
gabor@gabor ~/tmp/rubber$ latex '\let\originaldocumentclass\documentclass\renewcommand{\documentclass}[1][]{\originaldocumentclass[dvips,#1]}\input{test.tex}'
This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4)
entering extended mode
LaTeX2e <2003/12/01>
Babel <v3.8d> and hyphenation patterns for american, french, german,
ngerman, b
ahasa, basque, bulgarian, catalan, croatian, czech, danish, dutch,
esperanto, e
stonian, finnish, greek, icelandic, irish, italian, latin, magyar,
norsk, polis
h, portuges, romanian, russian, serbian, slovak, slovene, spanish,
swedish,tur
kish, ukrainian, nohyphenation, loaded.
(./test.tex (/usr/share/texmf-tetex/tex/latex/base/article.cls
Document Class: article 2004/02/16 v1.4f Standard LaTeX document
class
(/usr/share/texmf-tetex/tex/latex/base/size10.clo))
(/usr/share/texmf-tetex/tex/latex/graphics/graphicx.sty
(/usr/share/texmf-tetex/tex/latex/graphics/keyval.sty)
(/usr/share/texmf-tetex/tex/latex/graphics/graphics.sty
(/usr/share/texmf-tetex/tex/latex/graphics/trig.sty)
(/usr/share/texmf-tetex/tex/latex/graphics/graphics.cfg)
(/usr/share/texmf-tetex/tex/latex/graphics/dvips.def)))
(/usr/share/texmf-tetex/tex/latex/graphics/color.sty
(/usr/share/texmf-tetex/tex/latex/graphics/color.cfg)
(/usr/share/texmf-tetex/tex/latex/graphics/dvipsnam.def))
(/usr/share/texmf-tetex/tex/latex/hyperref/hyperref.sty
(/usr/share/texmf-tetex/tex/latex/hyperref/pd1enc.def)
(/home/gabor/texmf/tex/latex/config/hyperref.cfg)
Implicit mode ON; LaTeX internals redefined
(/usr/share/texmf-tetex/tex/latex/url/url.sty))
*hyperref using driver hdvips*
(/usr/share/texmf-tetex/tex/latex/hyperref/hdvips.def
(/usr/share/texmf-tetex/tex/latex/hyperref/pdfmark.def))
(./test.aux)
(/usr/share/texmf-tetex/tex/latex/hyperref/nameref.sty) [1]
(./test.aux) )
Output written on test.dvi (1 page, 2332 bytes).
Transcript written on test.log.
gabor@gabor ~/tmp/rubber$ grep '[Dd]river' test.log
Package graphics Info: Driver file: dvips.def on input line 80.
File: dvips.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
Package color Info: Driver file: dvips.def on input line 125.
File: dvipsnam.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
*hyperref using driver hdvips*
File: hdvips.def 2003/11/30 v6.74m Hyperref driver for dvips
The correct drivers are used.
gabor@gabor ~/tmp/rubber$ latex '\let\originaldocumentclass\documentclass\renewcommand{\documentclass}[1][]{\originaldocumentclass[dvipdfm,#1]}\input{test.tex}'
This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4)
entering extended mode
LaTeX2e <2003/12/01>
Babel <v3.8d> and hyphenation patterns for american, french, german,
ngerman, b
ahasa, basque, bulgarian, catalan, croatian, czech, danish, dutch,
esperanto, e
stonian, finnish, greek, icelandic, irish, italian, latin, magyar,
norsk, polis
h, portuges, romanian, russian, serbian, slovak, slovene, spanish,
swedish,tur
kish, ukrainian, nohyphenation, loaded.
(./test.tex (/usr/share/texmf-tetex/tex/latex/base/article.cls
Document Class: article 2004/02/16 v1.4f Standard LaTeX document
class
(/usr/share/texmf-tetex/tex/latex/base/size10.clo))
(/usr/share/texmf-tetex/tex/latex/graphics/graphicx.sty
(/usr/share/texmf-tetex/tex/latex/graphics/keyval.sty)
(/usr/share/texmf-tetex/tex/latex/graphics/graphics.sty
(/usr/share/texmf-tetex/tex/latex/graphics/trig.sty)
(/usr/share/texmf-tetex/tex/latex/graphics/graphics.cfg)
(/usr/share/texmf-tetex/tex/latex/dvipdfm/dvipdfm.def)))
(/usr/share/texmf-tetex/tex/latex/graphics/color.sty
(/usr/share/texmf-tetex/tex/latex/graphics/color.cfg)
(/usr/share/texmf-tetex/tex/latex/graphics/dvipsnam.def))
(/usr/share/texmf-tetex/tex/latex/hyperref/hyperref.sty
(/usr/share/texmf-tetex/tex/latex/hyperref/pd1enc.def)
(/home/gabor/texmf/tex/latex/config/hyperref.cfg)
Implicit mode ON; LaTeX internals redefined
(/usr/share/texmf-tetex/tex/latex/url/url.sty))
*hyperref using driver hdvipdfm*
(/usr/share/texmf-tetex/tex/latex/hyperref/hdvipdfm.def)
(./test.aux)
(/usr/share/texmf-tetex/tex/latex/hyperref/nameref.sty) (./test.out)
(./test.out) [1] (./test.aux) )
Output written on test.dvi (1 page, 2436 bytes).
Transcript written on test.log.
gabor@gabor ~/tmp/rubber$ grep '[Dd]river' test.log
Package graphics Info: Driver file: dvipdfm.def on input line 80.
File: dvipdfm.def 1999/9/6 vx.x Driver-dependant file
Package color Info: Driver file: dvipdfm.def on input line 125.
File: dvipsnam.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
*hyperref using driver hdvipdfm*
File: hdvipdfm.def 2003/11/30 v6.74m Hyperref driver for dvipdfm
Again, the correct drivers are used.
Best wishes,
Gabor Braun