%%
%%  A DANTE-Edition example
%%
%%  Example 31-05-4 on page 626.
%%
%%  Copyright (C) 2010 Herbert Voss
%%
%%  It may be distributed and/or modified under the conditions
%%  of the LaTeX Project Public License, either version 1.3
%%  of this license or (at your option) any later version.
%%
%%  See http://www.latex-project.org/lppl.txt for details.
%%
%%
%% ====
% Show page(s) 1
%%
\documentclass[]{article}
\pagestyle{empty}
\setlength\textwidth{375.57637pt}
\setlength\parindent{0pt}

%
\usepackage{pstricks,pst-labo,pstricks-add,graphicx}
\makeatletter
\define@key[psset]{pst-labo}{CA}{\edef\psk@Dosage@ConcentrationAcide{#1}}
\define@key[psset]{pst-labo}{CB}{\edef\psk@Dosage@ConcentrationBase{#1}}
\define@key[psset]{pst-labo}{VA}{\edef\psk@Dosage@VolumeAcide{#1}}
\define@key[psset]{pst-labo}{VB}{\edef\psk@Dosage@VolumeBase{#1}}
\psset{CA=0.1,CB=0.1,VB=10,VA=10}
\def\DosageABpH{\@ifnextchar[{\pst@DosageABpH}{\pst@DosageABpH[]}}%
\def\pst@DosageABpH[#1]{{%
 \psset{#1}%
 \begin{pspicture}(15,14)%
   \psgrid[style=gridstyle,gridlabels=0pt]%
   \psaxes[arrowscale=2,ticksize=0 -5pt]{->}(15,14)
   \uput[180](0,14){pH}%
   \pstVerb{%
     /pHmax
     /CA \psk@Dosage@ConcentrationAcide\space def
     /CB \psk@Dosage@ConcentrationBase\space def
     /VB \psk@Dosage@VolumeBase\space def
     /VA \psk@Dosage@VolumeAcide\space def
     /KE 1e-14 def
     KE VA 15 add mul CB 15 mul CA VA mul sub div
     log neg def
     /pHmin CA log neg def }%
   \parametricplot[linewidth=1.5pt]{pHmin}{pHmax}{%
     /H 10 t neg exp def
     CA VA mul KE VA mul H div add H VA mul sub
     H CB add KE H div sub div t }%
 \end{pspicture}}}
\makeatother

\begin{document}
\resizebox{0.75\linewidth}{!}{%
\begin{pspicture}(\textwidth,14.5)
\rput[l](0,7){\DosageABpH[CA=0.01,CB=0.01,VA=11.2]}
\rput[l](0,7){\DosageABpH[CA=0.0001,CB=0.0001,VA=5]}
\rput*[lt](0.3,14){\pstDosage[niveauReactifBurette=25,niveauLiquide1=30,%
       aspectLiquide1=Champagne,glassType=becher,phmetre,unit=0.5]}
\end{pspicture}}
\end{document}