chemicke vzorce

Zdenek Wagner wagner at cesnet.cz
Fri Nov 30 13:00:59 CET 2001


On Fri, 30 Nov 2001, Josef Svoboda wrote:

>
> %%% definice:
>
> \def\for #1#2\endfor{\def\forbody##1{#2}\let\next=\forcycle
> \next #1^^X}
> \def\forcycle#1{\if \noexpand #1^^X\let\next=\relax
> \else \forbody #1%
> \fi \next}
>
> \def\chem#1{
> \for{#1}%
> {\def\sazej{##1}%
> \ifnum`##1>47 \ifnum`##1<58 \def\sazej{${}_##1$}\else\fi \else\fi
> \sazej}%
> \endfor
> }
>
> %%% pouziti:
>
> \chem{H2SO4 + HNO3}
>
> \end
>
Asi by to chtelo trochu chytrejsi makro, ktere si bude znaky stradat. Co
treba C12H26, ktere se ma vysazet jako C_{12}H_{26}, nikoliv jako
C{}_1{}_2H{}_2{}_6.

Take v zadani bylo, ze jako dolni index se to sazi pouze v pripade, ze
neni zadano jinak. V chemii mame napr. izotopy, kde se pouziva zapis
{}^{235}_{92}U a ionty, napr. SO_{4}^{2-}. Obavam se, ze vyse uvedene
makro se hodi pouze pro jednoduche pripady a sam nevim, jak vsechno
osetrit.


Zdenek Wagner
e-mail: wagner at mbox.cesnet.cz  or  wagner at icpf.cas.cz

see also http://www.icpf.cas.cz/wagner/
         http://icebearsoft.euweb.cz


     Your windows will look best with
        ________________________
       /   /   /   /   /   /   /
      /_OS/2__/___/_OS/2__/___/
     /   /   /   /   /   /   /
    /___/___/_OS/2__/___/___/
   /   /   /   /   /   /   /
  /___/_OS/2__/___/_OS/2__/
 /   /   /   /   /   /   /
/___/___/___/___/___/___/




More information about the csTeX mailing list