Source
%% auteur : Péric
28.45 setxunit
-7.5 7 setxrange
-4 5 setyrange
1 1 settkstep
1 1 setmkstep
ticks
marks
traceaxes
axesarrow
unites

/titrait {%le point à marquer puis un point de la droite
4 dict begin 
/b defpoint
/a defpoint
/d {a a b vecteur arg 90 add dir 0.1 mulv translatepoint} def
/e {a a b vecteur arg -90 add dir 0.1 mulv translatepoint} def
[d e] ligne
end
} def

/f {setxvar
#rpn#   (x^2+4*x+1)/(x^2+x+1)
} def
/f' {setxvar
#rpn# 0
} def
/g {setxvar
#rpn# 3*x+1
} def
/h {1} def
/A {0 1} def



gsave
   bleu
   2 setlinewidth
   continu
   -10 10 {f} (*-*) Courbe
grestore
gsave
   rouge
<latex>
$y=3x+1$
</latex>
0.4 dup g [1.5 dup] {3 1 atan}drtexlabel
<latex>
$y=1$
</latex>
-5 dup h [1.5 dup] {0 1 atan}uctexlabel

1.5 settailletangente
1 (f)tangente
-1 (f)tangente
1 2 point
-1 -2 point
   .75 setlinewidth
   continu
   {g} courbe
   {h} courbe
 grestore