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