%% 
%%  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}
