%D \module
%D   [       file=ppchtex (m-chemie),
%D        version=1997.03.19,
%D          title=\CONTEXT\ Extra Modules,
%D       subtitle=\PPCHTEX\ (Plain Pictex Context cHemie \TEX),
%D         author=Hans Hagen,
%D           date=\huidigedatum,
%D      copyright={PRAGMA / Hans Hagen \& Ton Otten},
%D    suggestions={Tobias Burnus, Dirk Kuypers \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See licen-en.pdf for 
%C details. 

%D This module facilitates the use of \PPCHTEX\ in macro 
%D packages other than \CONTEXT. One of the features of 
%D \CONTEXT\ is that the user interface can be in any 
%D language. This language is defined at loading time. 
%D 
%D This module is indeed a surrogate one and is only a poor 
%D man's alternative to the more extensive \type{mult-***} 
%D modules of \CONTEXT. The extra overhead in terms of macros 
%D and functionality that these modules offer is only useful 
%D in \CONTEXT. 
%D 
%D Two interfaces are supported here, but others can easily be 
%D defined. This module expects the general system macros to be
%D loaded as wel as a interface switch \type{\ifalternativeinterface} 
%D to be set. 

%D First we load some auxiliary macro's:

\input supp-mis.tex  \let\writestatus\undefined
\input syst-gen.tex 

%D after which we can go on with: 

\unprotect

%D 0 = english 
%D 1 = dutch 
%D 2 = german 

\ifx\interfacenumber\undefined
  \chardef\interfacenumber=0
\fi

\def\definesystemvariable #1 %
  {\setvalue{??#1}{@@#1}}

\def\definesystemconstant #1 %
  {\setvalue{s!#1}{#1}}

\def\definevariable #1 #2 #3 %
  {\ifcase\interfacenumber
     \setvalue{v!#2}{#1}
   \or
     \setvalue{v!#2}{#2}
   \or
     \setvalue{v!#2}{#3}
   \fi}

\def\defineconstant #1 #2 #3 %
  {\ifcase\interfacenumber
     \setvalue{c!#2}{#2} 
     \setvalue{c!#1}{#2}
   \or
     \setvalue{c!#2}{#2}
   \or
     \setvalue{c!#2}{#2} 
     \setvalue{c!#3}{#2}
   \fi}

\def\definecommand #1 #2 #3 %
  {\ifcase\interfacenumber
     % core commands are english 
   \or
     \doifnot{#1}{#2}{\setvalue{#2}{\getvalue{#1}}}
   \or
     \doifnot{#1}{#3}{\setvalue{#3}{\getvalue{#1}}}
   \fi}

\long\def\startcommands#1\stopcommands%
  {}

\def\dosetvalue#1#2#3%
  {\p!doifundefined{\c!prefix!#2}% 
     \let\donottest=\doprocesstest
     \@EA\def\csname#1#2\endcsname{#3}%
   \else
     \let\donottest=\doprocesstest
     \@EA\def\csname#1\csname\c!prefix!#2\endcsname\endcsname{#3}%
   \fi}

\def\dosetevalue#1#2#3%
  {\p!doifundefined{\c!prefix!#2}%
     \let\donottest=\doprocesstest
     \@EA\edef\csname#1#2\endcsname{#3}%
   \else
     \let\donottest=\doprocesstest
     \@EA\edef\csname#1\csname\c!prefix!#2\endcsname\endcsname{#3}%
   \fi}

\def\docopyvalue#1#2#3%
  {\p!doifundefined{\c!prefix!#3}%
     \let\donottest=\doprocesstest
     \@EA\def\csname#1#3\endcsname%
       {\csname#2#3\endcsname}%
   \else
     \let\donottest=\doprocesstest
     \@EA\def\csname#1\csname\c!prefix!#3\endcsname\endcsname%
       {\csname#2\csname\c!prefix!#3\endcsname\endcsname}%
   \fi}

\def\doresetvalue#1#2%
  {\dosetvalue{#1}{#2}{}}

\def\dogetvalue#1#2%
  {\csname#1\csname\c!prefix!#2\endcsname\endcsname}

\defineconstant axis            assenstelsel     achsen
\defineconstant top             boven            oben
\defineconstant width           breedte          breite
\defineconstant size            formaat          groesse
\defineconstant number          getal            nummer
\defineconstant height          hoogte           hoehe   
\defineconstant frame           kader            rahmen
\defineconstant bodyfont        korps            fliesstext
\defineconstant style           letter           schriftstil
\defineconstant left            links            links 
\defineconstant offset          offset           offset
\defineconstant bottom          onder            unten
\defineconstant option          optie            option
\defineconstant location        plaats           platz
\defineconstant right           rechts           rechts
\defineconstant resolution      resolutie        aufloesung
\defineconstant scale           schaal           format 
\defineconstant status          status           status
\defineconstant text            tekst            text
\defineconstant textsize        tekstformaat     textgroesse       
\defineconstant alternative     variant          alternative
\defineconstant x               x                x
\defineconstant y               y                y

\definevariable on              aan              an
\definevariable big             groot            gross 
\definevariable intext          intekst          imtext
\definevariable small           klein            klein
\definevariable medium          middel           mittel
\definevariable fit             passend          passend
\definevariable start           start            start
\definevariable stop            stop             stop
\definevariable test            test             test
\definevariable off             uit              aus

\definecommand  definechemical  definieerchemie  definierechemie 
\definecommand  setupchemical   stelchemiein     stellechemieein 
\definecommand  chemical        chemie           chemie          
\definecommand  tochemical      naarchemie       zurchemie        
\definecommand  startchemical   startchemie      startchemie     
\definecommand  stopchemical    stopchemie       stopchemie      
\definecommand  toptext         boventekst       textueber 
\definecommand  bottext         ondertekst       textunter
\definecommand  midtext         middentekst      textmitte

\protect

%D After those definitions we actually load \PPCHTEX: 

\input ppchtex.tex

%D We also change some setup values. Let's hope that the next 
%D setups forever suits \LATEX. 

\unprotect

\ifx\bodyfontsize\undefined
  \ifx\f@size\undefined
    \ifx\@ptsize\undefined
      \setupchemical[\c!korps=11pt]
    \else
      \setupchemical[\c!korps=1\@ptsize pt]
    \fi
  \else
    \setupchemical[\c!korps=\f@size pt]
  \fi
\else
  \setupchemical[\c!korps=\bodyfontsize]
\fi

\ifx\mathrm\undefined
  \setupchemical[\c!letter=\rm]
\else
  \setupchemical[\c!letter=\mathrm]
\fi

\ifx\outputresolution\undefined
  \setupchemical[\c!resolutie=300]
\else
  \setupchemical[\c!resolutie=\outputresolution]
\fi

\protect

\endinput
