makemonic[p_, x_] := 
      Module[{n}, 
n = 
          Exponent[p, x]; 
Expand[
          p/Coefficient[p, x, n]]
]

Clear[RothsteinTrager];
RothsteinTrager[r_, x_] := 
      Module[{c, d, dmonic, z, res, sol, zlist, 
          vlist}, 
c = Numerator[r]; 
d = 
          Denominator[r]; 
dmonic = 
          makemonic[d, x]; 
c = 
          Together[c*dmonic/d]; 
d = 
          dmonic; 
res = 
          Resultant[c - z*D[d, x], d, x]; 
sol = 
          Union[Solve[res == 0, z]]; 
zlist = 
          z /. sol; 
vlist = 
          PolynomialGCD[c - z*D[d, x] /. sol, d, 
            Extension -> Automatic]; 
zlist  .  
          Log[makemonic[vlist, x]]
]

r = (((x^4) - 3  (x^2) + 6)/((x^6) - 5  (x^4) + 5  (x^2) + 4))

RT = RothsteinTrager[r, x]

Plot[RT, {x, -3, 3}]

int = 
      ArcTan[ComplexExpand[Re[(x^3) + I (x^2) - 3 x - 2 I]]/ComplexExpand[Im[(x^3) + I (x^2) - 3 x - 2 I]]]

Plot[int - RT, {x, -3, 3}]

Plot[r, {x, 1, 2}]

bestimmt = (RT /. x -> 2) - (RT /. x -> 1)

N[bestimmt]

bestimmt = (int /. x -> 2) - (int /. 
            x -> 1)

N[bestimmt]

komplizierter in Mathematica 5.0

bestimmt = (∫_1^2) r \[DifferentialD]x

N[bestimmt]

int = ∫r \[DifferentialD]x

Plot[int, {x, -3, 3}]

bestimmt = (int /. x -> 2) - (int /. 
            x -> 1)

N[bestimmt]