summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/chemarrow
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/chemarrow
Initial commit
Diffstat (limited to 'macros/latex/contrib/chemarrow')
-rw-r--r--macros/latex/contrib/chemarrow/Liesmich.txt139
-rw-r--r--macros/latex/contrib/chemarrow/README137
-rw-r--r--macros/latex/contrib/chemarrow/arrow.mf90
-rw-r--r--macros/latex/contrib/chemarrow/arrow.tfmbin0 -> 152 bytes
-rw-r--r--macros/latex/contrib/chemarrow/chemarrow-de.pdfbin0 -> 213001 bytes
-rw-r--r--macros/latex/contrib/chemarrow/chemarrow-de.tex189
-rw-r--r--macros/latex/contrib/chemarrow/chemarrow.pdfbin0 -> 226921 bytes
-rw-r--r--macros/latex/contrib/chemarrow/chemarrow.sty167
-rw-r--r--macros/latex/contrib/chemarrow/chemarrow.tex184
-rw-r--r--macros/latex/contrib/chemarrow/testchem.tex117
-rw-r--r--macros/latex/contrib/chemarrow/type1/Arrow.vfbbin0 -> 5435 bytes
-rw-r--r--macros/latex/contrib/chemarrow/type1/arrow.Mac.sit.hqx1
-rw-r--r--macros/latex/contrib/chemarrow/type1/arrow.afm28
-rw-r--r--macros/latex/contrib/chemarrow/type1/arrow.inf21
-rw-r--r--macros/latex/contrib/chemarrow/type1/arrow.mp90
-rw-r--r--macros/latex/contrib/chemarrow/type1/arrow.pfbbin0 -> 2562 bytes
-rw-r--r--macros/latex/contrib/chemarrow/type1/arrow.pfmbin0 -> 304 bytes
-rw-r--r--macros/latex/contrib/chemarrow/type1/chemarrow.map2
18 files changed, 1165 insertions, 0 deletions
diff --git a/macros/latex/contrib/chemarrow/Liesmich.txt b/macros/latex/contrib/chemarrow/Liesmich.txt
new file mode 100644
index 0000000000..bc5670983d
--- /dev/null
+++ b/macros/latex/contrib/chemarrow/Liesmich.txt
@@ -0,0 +1,139 @@
+Neue Pfeilspitzen fuer chemische Reaktionen 4. Februar 2001
+-------------------------------------------
+
+1) Wozu das ganze?
+
+LaTeX ist sehr vielseitig zum Setzen der unterschiedlichsten Texte
+einsetzbar, aber der Satz chemischer Reaktionen ist aesthetisch nicht sehr
+ansprechend, da die vorhandenen Pfeile \rightarrow, \leftarrow und
+\rightleftharpoons fŸr diesen Zweck zu kurz sind und die Pfeilspitzen nicht
+unbedingt dem "Standard" entsprechen, den man in Lehrbuechern und Zeitschriften
+vorfindet.
+
+Das Makro chemarrow.sty soll in Verbindung mit dem Zeichensatz arrow.mf das
+Setzen chemischer Reaktionsgleichungen in LaTeX vereinfachen und vor allem
+verschoenern.
+
+2) Dateien
+
+arrow.mf MetaFont Sourcecode von arrow
+arrow.tfm .tfm Datei von arrow fŸr TeX
+chemarrow.sty Makro zum Setzen von Pfeilen fŸr Reaktionsgleichungen
+Readme.txt englische Liesmich Datei
+testchem.tex Testdatei fŸr chemarrow.sty und arrow.mf
+Liesmich.txt deutsche Liesmich Datei
+Type 1/arrow Mac.sit.hqx Type 1 Version von arrow fŸr den Mac
+Type 1/arrow PC.zip Type 1 Version arrow fŸr PC/Unix
+Type 1/arrow.mp MetaPost Sourcecode zu arrow
+
+Die FontLab Datei arrow.vfb in den beiden Type 1 Archiven muss nicht mitkopiert
+werden, ich habe sie nur dazugepackt, falls jemand mein Design verbessern
+will :-)
+
+3) Verwendung
+
+Die Beispieldatei testchem.tex sollte Aufschluss genug geben, wie das Packet
+chemarrow.sty verwendet wird, auch gibt es in chemarrow.sty eine
+Kurzanleitung aller definierten Befehle. Zur Benutzung muss arrow.tfm in
+einen Ordner kopiert werden, in dem LaTeX nach .tfm Files sucht, arrow.mf
+muss in einen Ordner kopiert werden, in dem MetaFont nach MetaFont Sourcen
+sucht. Die benoetigten .pk Dateien sollten dann automatisch vom DVI
+Previewer oder vom Druckertreiber erzeugt werden.
+
+Ich habe zusaetzlich noch PostScript Type 1 Zeichensaetze fuer den Mac und fuer
+PCs/Unix im .pfb Format beigelegt zur Erzeugung von PDF Dokumenten. Dazu muessen
+die Type 1 Zeichensaetze in einen Ordner kopiert werden, wo TeX und Freunde
+nach Type 1 Zeichensaetzen suchen, am besten dort hin, wo sich die Computer
+Modern Type 1 Zeichensaetze befinden.
+
+Damit dvips weiss, dass es nicht die .pk Zeichensaetze von arrow.mf sondern
+die Type 1 Zeichensaetze einbinden soll, muss noch ein Eintrag in
+psfonts.map gemacht werden.
+
+- FŸr Macs:
+
+arrow arrow <arrow
+
+- PC/Unix:
+
+arrow arrow <arrow.pfb
+
+Bei der Verwendung von pdfTeX statt dvips und Acrobat Distiller mu§ ein
+Eintrag in pdftex.map gemacht werden:
+
+arrow <arrow.pfb
+
+4) Disclaimer
+
+Das Makro chemarrow.sty und der Font arrow.mf sind schnelle Hacks fuer
+meine eigenen Zwecke, ob sie auf anderen Systemen einwandfrei funktionieren,
+kann ich nicht garantieren. Dafuer veroeffentliche ich das ganze Packet als
+sogennante Free Software, d.h. jeder kann damit machen, was er will. Ich
+moechte nur darum bitten, bei Veraenderungen und Wiederveroeffentlichung
+meinen Namen durch den eigenen zu ergaenzen oder zu ersetzen. Danke.
+
+Fuer Anregungen und Verbesserungen bin ich dankbar und freue mich.
+
+5) Entstehung
+
+Bei der Suche nach neuen Pfeilen bin ich auf den relativ neuen Zeichensatz
+cryst.mf von Ulrich Mueller gestossen, der mir ganz gut gefallen hat, und nach
+ein paar Modifikationen ist daraus arrow.mf entstanden.
+
+Von Andreas Hertwig habe ich ein Makro bekommen, mit dem man verlaengerbare
+Reaktionspfeile setzen kann. Dieses habe ich an meine Beduerfnisse angepasst,
+und die Original Pfeilspitzen durch Pfeilspitzen aus arrow.mf ersetzt. Das
+Original Makro wurde wohl auf einer TeX Mailingliste gepostet, der Autor
+ist aber leider nicht mehr bekannt. Falls er dieses liest moechte ich mich
+herzlich fuer die Vorlage bedanken!
+
+Der zeitaufwendigste und komplizierteste Teil war die Umsetzung der
+MetaFont Sourcen in einen Type 1 Zeichensatz. Leider gibt es kein freies
+Programm fuer diese Zwecke wie ich enttaeuscht feststellen musste :-(
+Weiterhin musste ich feststellen, dass das Einbinden von .pk Zeichensaetzen in
+PDF Dokumente keine schoenen Ergebnisse liefert, das Verwenden von Type 1
+Zeichensaetzen ist fuer eine leserliche und ansehnliche Darstellung
+Pflicht :-(
+
+Aus arrow.mp, einem leicht modifizierten arrow.mf, habe ich mit MetaPost
+und mfplain Graphiken im EPS Format erzeugt, und diese in die Demo
+von FontLab 3.0 importiert. Nach einigen Arbeitsschritten und
+Verkleinerung auf 79% konnte ich dann einen Type 1 Zeichensatz abspeichern.
+
+6) Probleme
+
+Leider bin ich kein Experte auf dem Gebiet der Erstellung von Zeichensaetzen.
+Das ist wohl der Grund dafuer, warum die Pfeile in einem PDF Dokument auf
+manchen Plattformen erst ab 125% Vergroesserung zu erkennen sind. Unterhalb
+dieser Vergroesserung sieht man nur Striche :-(
+
+Ich denke, mit einem anstaendigen Hinting duerfte sich dieses Problem loesen
+lassen, aber das uebersteigt meine derzeitigen Faehigkeiten und die
+Laufdauer der Demo von Fontlab :-)
+
+Wenn also jemand weiss, wie man diese letzte Unschoenheit beseitigen kann,
+waere ich fuer eine Antwort dankbar.
+
+7) Zukuenftige Versionen
+
+Ehrlich gesagt weiss ich nicht, ob es zukuenftige Versionen dieses Packetes
+geben wird, denn fuer meine Zwecke tut eigentlich alles, wie es soll. Etwas
+unschoen ist die direkte Verdrahtung des arrow Zeichensatzes in
+chemarrow.sty, dies werde ich evtl. bei Gelegenheit aendern. Weiterhin
+unschoen ist das Problem bei PDF Dokumenten, wenn sich da eine Loesung
+ergibt, werde ich sie veroeffentlichen.
+
+8) Dank
+
+- D. E. Knuth fuer TeX
+- L. Lamport fuer LaTeX
+- dem LaTeX3 Team fuer LaTeX2e
+- A. Hertwig fuer die freundliche Bereitstellung des Original Makros
+- dem unbekannten Autor des Original Makros
+- U. Mueller fuer cryst.mf
+
+9) Autor
+
+Thomas Schroeder
+
+schroeder@ictw.chemie.uni-karlsruhe.de
diff --git a/macros/latex/contrib/chemarrow/README b/macros/latex/contrib/chemarrow/README
new file mode 100644
index 0000000000..440efe07dc
--- /dev/null
+++ b/macros/latex/contrib/chemarrow/README
@@ -0,0 +1,137 @@
+New arrow heads for chemical reaction schemes 4 February 2001
+---------------------------------------------
+
+1) What's the name of the game?
+
+LaTeX can be used to typeset many kinds of different documents, but
+typesetting chemical reactions is esthetically not very pleasing because
+LaTeX's own arrows \rightarrow, \leftarrow and \rightleftharpoons which
+you might use for this purpose are too short and the arrow heads are not
+like the "standard" ones you will find in books or journals on chemistry.
+
+The macro chemarrow.sty in conjunction with the font arrow.mf is supposed
+to make the typesetting of chemical reaction schemes in LaTeX easier and
+especially nicer looking.
+
+2) Dateien
+
+arrow.mf MetaFont source code of the arrow font
+arrow.tfm .tfm Datei of arrow for the use with TeX
+chemarrow.sty macro for the typesetting of arrows in chemical reaction schemes
+Readme.txt English Readme
+testchem.tex test file for chemarrow.sty and arrow.mf
+Liesmich.txt German Readme
+Type 1/arrow Mac.sit.hqx type 1 version of arrow for Macintosh
+Type 1/arrow PC.zip type 1 version of arrow for PC/Unix
+Type 1/arrow.mp MetaPost source code of arrow
+
+There is no need to copy the FontLab file arrow.vfb included in both of the
+type 1 archives, I just put it there in case you want to enhance my designs :-)
+
+
+3) Usage
+
+The examples in the file testchem.tex should be sufficient for the
+understanding of how chemarrow.sty works, and there's also a short
+description in chemarrow.sty of all the newly defined commands. To use the
+package, arrow.tfm must be copied to a directory where LaTeX will be
+searching for .tfm files, arrow.mf must be copied to a directory where
+MetaFont will be searching for MetaFont sources. The required .pk files
+should be produced automatically by a dvi previewer or a printer driver.
+
+There are also type 1 fonts of arrow.mf in Mac and PC/Unix format so that
+you can produce PDF documents easily. To use the type 1 font it must be
+copied to a directory where TeX and friends will be searching for type 1
+fonts, the best place would of course be where the Computer Modern type 1
+fonts reside.
+
+If dvips is supposed to use the type 1 font instead of the .pk font you
+must add this line to psfonts.map:
+
+- for Macintosh:
+
+arrow arrow <arrow
+
+- for PC/Unix:
+
+arrow arrow <arrow.pfb
+
+If you use pdfTeX instead of dvips and Acrobat Distiller you must also add
+this line to pdftex.map:
+
+arrow <arrow.pfb
+
+4) Disclaimer
+
+The macro chemarrow.sty and the font arrow.mf are quick hacks for my own
+needs, I cannot guarantee that they will work an other systems than my own.
+In exchange I am publishing this package as free software which means you
+can do whatever you like with it and it comes for free. I would just like
+to ask that in case you do make changes und publish the package or any parts of
+it to add your own name or replace it with mine. Thank you.
+
+Any hints and suggestions will be accepted gratefully.
+
+5) History
+
+As I was looking for new arrows I found a quite new font named cryst.mf by
+Ulrich Mueller which I rather liked. After a few modifications the new font
+arrow.mf was born.
+
+I received a macro by Andreas Hertwig with which you can typeset arrows
+that will change in size. I modified this macro to my needs and replaced the
+original arrows with the arrows from arrow.mf. The original macro was apparently
+posted in a TeX mailing list, but its author is unfortunately unknown. So, if
+you are the original author and read this I'd like to thank you for your work!
+
+The most time consuming and complicated part was to produce a type 1 font
+from my MetaFont sources. Unfortunately there is no free software to do
+this :-(
+Also, if you include .pk fonts into PDF documents you won' get nice results
+because Acrobat Reader renders them very poorly. Therefore it is vital to
+include type 1 fonts into a PDF document :-(
+
+Using arrow.mp which is a slightly modified arrow.mf in combination with
+MetaPost and mfplain I was able to produce graphics in the EPS format which I
+imported into a demo of FontLab 3.0. After a few steps and reducing the
+size to 79% I was able to save the font in type 1 format.
+
+6) Problems
+
+Unfortunately I am no expert on creating fonts. This is probably why the
+arrows will show on some platforms only at 125% or larger. Below 125% there
+will only be some strokes :-(
+
+I think if someone did a manual hinting of the font then this problem
+would be remedied, but this will probably not be me because this is out of
+my league and beyond the time limit of the demo of FontLab :-)
+
+So if there is somebody out there who is able to help me with this problem
+I'd be grateful.
+
+7) Future versions
+
+To tell you the truth, I don't really know if there will be future versions
+because as far as I'm concerned the package works as it is supposed to.
+The direct linking of the arrow font in chemarrow.sty is maybe not so nice,
+so this might be something I will change in the future. The rendering
+problem of PDF documents on some platforms is also not very nice so if
+some sort of solution pops up I will publish it.
+
+8) Thank-Yous
+
+- D. E. Knuth for TeX
+- L. Lamport for LaTeX
+- to the LaTeX3 team for LaTeX2e
+- A. Hertwig for being so nice to give me the original macro
+- to the unknown author of the original macro
+- U. Mueller for cryst.mf
+
+9) Author
+
+Thomas Schroeder
+
+schroeder@ictw.chemie.uni-karlsruhe.de
+
+PS: Sorry for any misspellings and such, English is not my native
+language :-) \ No newline at end of file
diff --git a/macros/latex/contrib/chemarrow/arrow.mf b/macros/latex/contrib/chemarrow/arrow.mf
new file mode 100644
index 0000000000..170ad773fc
--- /dev/null
+++ b/macros/latex/contrib/chemarrow/arrow.mf
@@ -0,0 +1,90 @@
+%
+% arrow.mf produces new arrow heads e.g. for chemical reaction schemes
+%
+% Author: Thomas Schroeder schroeder@ictw.chemie.uni-karlsruhe.de
+%
+% Version: 0.5 February 1 2001
+%
+% arrow.mf is inspired by and based on cryst.mf version 1.0 by Ulrich Mueller
+%
+
+
+
+mode_setup; font_size 10pt#;
+font_identifier:="arrow"; font_coding_scheme:="UNSPECIFIED";
+ff:=0.82;
+u#:=ff*0.10pt#;
+br#:=108u#; ho#:=100u#; ul#:=32u#; % Breite, Hoehe, Unterlaenge
+define_pixels(u,br,ho,ul);
+
+
+beginchar(65,120u#,68u#,0);
+"right arrow";
+z1=(0u,33.2u); z2=(88u,33.2u); z3=(88u,27.7u); z4=(0,27.7u);
+z5=(116u,30.7u); z6=(63u,7.2u); z7=(62u,9.2u);
+z8=(76u,30.7u); z9=(62u,51.2u); z10=(63u,53.2u);
+fill z10{dir -28}..{dir -15}z5..z5{dir -165}..{dir -152}z6--z7--z8--z9--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 10);
+endchar;
+
+
+beginchar(66,120u#,68u#,0);
+"up right harpoon";
+z1=(0u,33.2u); z2=(88u,33.2u); z3=(88u,27.7u); z4=(0,27.7u);
+z5=(116u,27.7u); z6=(63u,55u); z7=(62u,53u); z8=(74u,27.7u);
+fill z6{dir -32}..{dir -22}z5--z8--z7--z6..cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 8);
+endchar;
+
+beginchar(67,120u#,68u#,0);
+"down right harpoon";
+z1=(0u,33.2u); z2=(88u,33.2u); z3=(88u,27.7u); z4=(0,27.7u);
+z5=(116u,33.2u); z6=(63u,5u); z7=(62u,7u); z8=(76u,33.2u);
+fill z6{dir 32}..{dir 22}z5--z8--z7--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 8);
+endchar;
+
+
+beginchar(68,120u#,68u#,0);
+"left arrow";
+z1=(120u,33.2u); z2=(32u,33.2u); z3=(32u,27.7u); z4=(120u,27.7u);
+z5=(4u,30.7u); z6=(57u,7.2u); z7=(58u,9.2u);
+z8=(42u,30.7u); z9=(58u,51.2u); z10=(57u,53.2u);
+fill z10{dir -152}..{dir -165}z5..z5{dir -15}..{dir -28}z6--z7--z8--z9--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 10);
+endchar;
+
+beginchar(69,120u#,68u#,0);
+"up left harpoon";
+z1=(120u,33.2u); z2=(31u,33.2u); z3=(31u,27.7u); z4=(120u,27.7u);
+z5=(4u,27.7u); z6=(57u,55u); z7=(58u,53u); z8=(46u,27.7u);
+fill z5{dir 22}..{dir 32}z6--z7--z8--z5..cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 8);
+endchar;
+
+
+beginchar(70,120u#,68u#,0);
+"down left harpoon";
+z1=(120u,33.2u); z2=(31u,33.2u); z3=(31u,27.7u); z4=(120u,27.7u);
+z5=(4u,33.2u); z6=(57u,5u); z7=(58u,7u); z8=(40u,33.2u);
+%fill z5{dir 22}..{dir 32}z6--z7--z8--z5..cycle;
+fill z5{dir -15}..{dir -28}z6--z7--z8--z5..cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 8);
+endchar;
+
+beginchar(71,74u#,68u#,0);
+"new minus sign";
+% z1=(2u,33.2u); z2=(72u,33.2u); z3=(72u,27.7u); z4=(2u,27.7u); z5=(0u,30.7u); z6=(74u,30.7u);
+z2=(2u,33.2u); z3=(72u,33.2u); z5=(72u,27.7u); z6=(2u,27.7u); z1=(0u,30.7u); z4=(74u,30.7u);
+% fill z2--z3--z5--z6--cycle;
+fill z6..z1..z2--z3..z4..z5--z6--cycle;
+labels(range 1 thru 6);
+endchar;
+
+bye.
diff --git a/macros/latex/contrib/chemarrow/arrow.tfm b/macros/latex/contrib/chemarrow/arrow.tfm
new file mode 100644
index 0000000000..8bcf449de4
--- /dev/null
+++ b/macros/latex/contrib/chemarrow/arrow.tfm
Binary files differ
diff --git a/macros/latex/contrib/chemarrow/chemarrow-de.pdf b/macros/latex/contrib/chemarrow/chemarrow-de.pdf
new file mode 100644
index 0000000000..26c94aa9c8
--- /dev/null
+++ b/macros/latex/contrib/chemarrow/chemarrow-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/chemarrow/chemarrow-de.tex b/macros/latex/contrib/chemarrow/chemarrow-de.tex
new file mode 100644
index 0000000000..39fb1ea420
--- /dev/null
+++ b/macros/latex/contrib/chemarrow/chemarrow-de.tex
@@ -0,0 +1,189 @@
+\documentclass[german, DIV=9, pagesize=auto]{scrartcl}
+
+\usepackage{fixltx2e}
+\usepackage{etex}
+\usepackage{lmodern}
+\usepackage{mflogo}
+\usepackage{wasysym}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{babel}
+\usepackage{array}
+\usepackage[utf8]{inputenc}
+\usepackage{microtype}
+\usepackage[unicode=true]{hyperref}
+
+\newcommand*{\mail}[1]{\href{mailto:#1}{\texttt{#1}}}
+\newcommand*{\pkg}[1]{\textsf{#1}}
+\newcommand*{\cs}[1]{\texttt{\textbackslash#1}}
+\makeatletter
+\newcommand*{\cmd}[1]{\cs{\expandafter\@gobble\string#1}}
+\makeatother
+
+\addtokomafont{title}{\rmfamily}
+
+\title{Das Paket \pkg{chemarrow}}
+\subtitle{Neue Pfeilspitzen fuer chemische Reaktionen}
+\author{Thomas Schroeder\\\mail{schroeder@ictw.chemie.uni-karlsruhe.de}}
+\date{4. Februar 2001}
+
+
+\begin{document}
+
+\maketitle
+
+\tableofcontents
+
+\section{Wozu das ganze?}
+
+\LaTeX\ ist sehr vielseitig zum Setzen der unterschiedlichsten Texte
+einsetzbar, aber der Satz chemischer Reaktionen ist aesthetisch nicht sehr
+ansprechend, da die vorhandenen Pfeile \cmd{\rightarrow}, \cmd{\leftarrow} und
+\cmd{\rightleftharpoons} für diesen Zweck zu kurz sind und die Pfeilspitzen nicht
+unbedingt dem "`Standard"' entsprechen, den man in Lehrbuechern und Zeitschriften
+vorfindet.
+
+Das Makro \texttt{chemarrow.sty} soll in Verbindung mit dem Zeichensatz \texttt{arrow.mf} das
+Setzen chemischer Reaktionsgleichungen in \LaTeX\ vereinfachen und vor allem
+verschoenern.
+
+
+\section{Dateien}
+
+\begin{tabular}{@{}>{\ttfamily}l>{\raggedright\arraybackslash}p{85mm}@{}}
+ arrow.mf & \MF\ Sourcecode von \pkg{arrow} \\
+ arrow.tfm & \texttt{.tfm} Datei von \pkg{arrow} für \TeX \\
+ chemarrow.sty & Makro zum Setzen von Pfeilen für Reaktionsgleichungen \\
+ Readme.txt & englische Liesmich Datei \\
+ testchem.tex & Testdatei für \texttt{chemarrow.sty} und \texttt{arrow.mf} \\
+ Liesmich.txt & deutsche Liesmich Datei \\
+ Type 1/arrow Mac.sit.hqx & Type~1 Version von \pkg{arrow} für den Mac \\
+ Type 1/arrow PC.zip & Type~1 Version \pkg{arrow} für PC/Unix \\
+ Type 1/arrow.mp & \MP\ Sourcecode zu \pkg{arrow}
+\end{tabular}
+
+\medskip
+
+Die FontLab Datei \texttt{arrow.vfb} in den beiden Type~1 Archiven muss nicht mitkopiert
+werden, ich habe sie nur dazugepackt, falls jemand mein Design verbessern
+will \smiley
+
+
+\section{Verwendung}
+
+Die Beispieldatei \texttt{testchem.tex} sollte Aufschluss genug geben, wie das Packet
+\texttt{chemarrow.sty} verwendet wird, auch gibt es in \texttt{chemarrow.sty} eine
+Kurzanleitung aller definierten Befehle. Zur Benutzung muss \texttt{arrow.tfm} in
+einen Ordner kopiert werden, in dem \LaTeX\ nach \texttt{.tfm} Files sucht, \texttt{arrow.mf}
+muss in einen Ordner kopiert werden, in dem \MF\ nach \MF\ Sourcen
+sucht. Die benoetigten \texttt{.pk} Dateien sollten dann automatisch vom DVI
+Previewer oder vom Druckertreiber erzeugt werden.
+
+Ich habe zusaetzlich noch PostScript Type~1 Zeichensaetze fuer den Mac und fuer
+PCs/Unix im \texttt{.pfb} Format beigelegt zur Erzeugung von PDF Dokumenten. Dazu muessen
+die Type~1 Zeichensaetze in einen Ordner kopiert werden, wo \TeX\ und Freunde
+nach Type~1 Zeichensaetzen suchen, am besten dort hin, wo sich die Computer
+Modern Type~1 Zeichensaetze befinden.
+
+Damit dvips weiss, dass es nicht die \texttt{.pk} Zeichensaetze von \texttt{arrow.mf} sondern
+die Type~1 Zeichensaetze einbinden soll, muss noch ein Eintrag in
+\texttt{psfonts.map} gemacht werden.
+%
+\begin{itemize}
+\item Für Macs:\\
+ \verb+arrow arrow <arrow+
+
+\item PC/Unix:\\
+ \verb+arrow arrow <arrow.pfb+
+\end{itemize}
+
+Bei der Verwendung von pdf\TeX\ statt dvips und Acrobat Distiller muß ein
+Eintrag in \texttt{pdftex.map} gemacht werden:
+%
+\begin{verbatim}
+arrow <arrow.pfb
+\end{verbatim}
+
+
+\section{Disclaimer}
+
+Das Makro \texttt{chemarrow.sty} und der Font \texttt{arrow.mf} sind schnelle Hacks fuer
+meine eigenen Zwecke, ob sie auf anderen Systemen einwandfrei funktionieren,
+kann ich nicht garantieren. Dafuer veroeffentliche ich das ganze Packet als
+sogennante Free Software, d.\,h.\ jeder kann damit machen, was er will. Ich
+moechte nur darum bitten, bei Veraenderungen und Wiederveroeffentlichung
+meinen Namen durch den eigenen zu ergaenzen oder zu ersetzen. Danke.
+
+Fuer Anregungen und Verbesserungen bin ich dankbar und freue mich.
+
+
+\section{Entstehung}
+
+Bei der Suche nach neuen Pfeilen bin ich auf den relativ neuen Zeichensatz
+\texttt{cryst.mf} von Ulrich Mueller gestossen, der mir ganz gut gefallen hat, und nach
+ein paar Modifikationen ist daraus \texttt{arrow.mf} entstanden.
+
+Von Andreas Hertwig habe ich ein Makro bekommen, mit dem man verlaengerbare
+Reaktionspfeile setzen kann. Dieses habe ich an meine Beduerfnisse angepasst,
+und die Original Pfeilspitzen durch Pfeilspitzen aus \texttt{arrow.mf} ersetzt. Das
+Original Makro wurde wohl auf einer \TeX\ Mailingliste gepostet, der Autor
+ist aber leider nicht mehr bekannt. Falls er dieses liest moechte ich mich
+herzlich fuer die Vorlage bedanken!
+
+Der zeitaufwendigste und komplizierteste Teil war die Umsetzung der
+\MF\ Sourcen in einen Type~1 Zeichensatz. Leider gibt es kein freies
+Programm fuer diese Zwecke wie ich enttaeuscht feststellen musste \frownie
+Weiterhin musste ich feststellen, dass das Einbinden von \texttt{.pk} Zeichensaetzen in
+PDF Dokumente keine schoenen Ergebnisse liefert, das Verwenden von Type~1
+Zeichensaetzen ist fuer eine leserliche und ansehnliche Darstellung
+Pflicht \frownie
+
+Aus \texttt{arrow.mp}, einem leicht modifizierten \texttt{arrow.mf}, habe ich mit \MP\ %
+und \texttt{mfplain} Graphiken im EPS Format erzeugt, und diese in die Demo
+von FontLab~3.0 importiert. Nach einigen Arbeitsschritten und
+Verkleinerung auf 79\% konnte ich dann einen Type~1 Zeichensatz abspeichern.
+
+
+\section{Probleme}
+
+Leider bin ich kein Experte auf dem Gebiet der Erstellung von Zeichensaetzen.
+Das ist wohl der Grund dafuer, warum die Pfeile in einem PDF Dokument auf
+manchen Plattformen erst ab 125\% Vergroesserung zu erkennen sind. Unterhalb
+dieser Vergroesserung sieht man nur Striche \frownie
+
+Ich denke, mit einem anstaendigen Hinting duerfte sich dieses Problem loesen
+lassen, aber das uebersteigt meine derzeitigen Faehigkeiten und die
+Laufdauer der Demo von Fontlab \smiley
+
+Wenn also jemand weiss, wie man diese letzte Unschoenheit beseitigen kann,
+waere ich fuer eine Antwort dankbar.
+
+
+\section{Zukuenftige Versionen}
+
+Ehrlich gesagt weiss ich nicht, ob es zukuenftige Versionen dieses Packetes
+geben wird, denn fuer meine Zwecke tut eigentlich alles, wie es soll. Etwas
+unschoen ist die direkte Verdrahtung des \pkg{arrow} Zeichensatzes in
+\texttt{chemarrow.sty}, dies werde ich evtl.\ bei Gelegenheit aendern. Weiterhin
+unschoen ist das Problem bei PDF Dokumenten, wenn sich da eine Loesung
+ergibt, werde ich sie veroeffentlichen.
+
+
+\section{Dank}
+
+\begin{itemize}
+\item D. E. Knuth fuer \TeX
+\item L. Lamport fuer \LaTeX\
+\item dem \LaTeX3 Team fuer \LaTeXe
+\item A. Hertwig fuer die freundliche Bereitstellung des Original Makros
+\item dem unbekannten Autor des Original Makros
+\item U. Mueller fuer \texttt{cryst.mf}
+\end{itemize}
+
+
+\section{Autor}
+
+Thomas Schroeder\\
+\mail{schroeder@ictw.chemie.uni-karlsruhe.de}
+
+\end{document}
diff --git a/macros/latex/contrib/chemarrow/chemarrow.pdf b/macros/latex/contrib/chemarrow/chemarrow.pdf
new file mode 100644
index 0000000000..ac1cbd3170
--- /dev/null
+++ b/macros/latex/contrib/chemarrow/chemarrow.pdf
Binary files differ
diff --git a/macros/latex/contrib/chemarrow/chemarrow.sty b/macros/latex/contrib/chemarrow/chemarrow.sty
new file mode 100644
index 0000000000..fae4e2e841
--- /dev/null
+++ b/macros/latex/contrib/chemarrow/chemarrow.sty
@@ -0,0 +1,167 @@
+%
+% New arrow heads for chemical reaction schemes
+%
+% Author: Thomas Schroeder schroeder@ictw.chemie.uni-karlsruhe.de
+%
+% Version: 0.7 February 3 2001
+%
+% macro chemarrow.sty based on TeXBook and a source file provided
+% by Andreas Hertwig Andreas.Hertwig@chemie.uni-karlsruhe.de
+%
+% font arrow.mf based on cryst.mf by Ulrich Mueller
+%
+%----------------------------------------------------------------------------
+% TeX Usage of various Chemical Arrow drawing macros
+%-----------------------------------------------------------------------------
+% \chemarrow % simple unsized reaction arrow
+% \larrowfill{90pt} % parameter is length of harpoon
+% \rarrowfill{90pt} % parameter is length of harpoon
+% \rightleftharpoonsfill{90pt} % parameter is length of harpoons
+% \leftrightharpoonsfill{90pt} % parameter is length of harpoons
+% \autoleftarrow{upper_stuff}{lower_stuff} % sizes automatically
+% \autorightarrow{upper_stuff}{lower_stuff} % sizes automatically
+% \autorightleftharpoons{upper_stuff}{lower_stuff} % sizes automatically
+% \autoleftrightharpoons{upper_stuff}{lower_stuff} % sizes automatically
+%----------------------------------------------------------------------------
+\DeclareFontFamily{U}{arr}{\hyphenchar\font=-1}
+%\DeclareFontShape{U}{arr}{m}{n}{<9> <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88> <29.86> <35.83> <43.00> <51.6> <61.92> <74.3> <89.16> <107.0> arrow}{}
+\DeclareFontShape{U}{arr}{m}{n}{ <-> arrow}{}
+\newcommand{\arro}{\usefont{U}{arr}{m}{n}}
+%-----------------------------------------------------------------------------
+% definitions taken from `am-plain.tex'
+%
+\catcode`@=11
+\newdimen\z@ \z@=0pt % can be used both for 0pt and 0
+\newskip\z@skip \z@skip=0pt plus0pt minus0pt
+\def\m@th{\mathsurround=\z@}% from am-plain.tex
+%-----------------------------------------------------------------------------
+% dimensions used in calculating the `auto' fill macros
+%
+ \newdimen\autotop \newdimen\autobottom \newdimen\autosize
+%-----------------------------------------------------------------------------
+% Same as `\rightarrowfill' from the TeXBook, but with `\leftharpoondown'
+%
+\def\leftharpoondownfill{$\m@th\mathord{\textrm{\arro\symbol{70}}}\mkern-6mu%
+ \cleaders\hbox{$\mkern-2mu\mathord{\textrm{\arro\symbol{71}}}\mkern-2mu$}\hfill
+ \mkern-6mu\mathord{\textrm{\arro\symbol{71}}}$}
+%-----------------------------------------------------------------------------
+
+\def\leftharpoonupfill{$\m@th\mathord{\textrm{\arro\symbol{69}}}\mkern-6mu%
+ \cleaders\hbox{$\mkern-2mu\mathord{\textrm{\arro\symbol{71}}}\mkern-2mu$}\hfill
+ \mkern-6mu\mathord{\textrm{\arro\symbol{71}}}$}
+
+
+%-----------------------------------------------------------------------------
+% Same as `\rightarrowfill' from the TeXBook, but with `\rightharpoondown'
+%
+
+\def\rightharpoonupfill{$\m@th\mathord{\textrm{\arro\symbol{71}}}\mkern-6mu%
+ \cleaders\hbox{$\mkern-2mu\mathord{\textrm{\arro\symbol{71}}}\mkern-2mu$}\hfill
+ \mkern-6mu\mathord{\textrm{\arro\symbol{66}}}$}
+
+
+\def\rightharpoondownfill{$\m@th\mathord{\textrm{\arro\symbol{71}}}\mkern-6mu%
+ \cleaders\hbox{$\mkern-2mu\mathord{\textrm{\arro\symbol{71}}}\mkern-2mu$}\hfill
+ \mkern-6mu\mathord{\textrm{\arro\symbol{67}}}$}
+
+
+%-----------------------------------------------------------------------------
+
+\def\leftchemarrowfill{$\m@th\mathord{\textrm{\arro\symbol{68}}}\mkern-6mu%
+ \cleaders\hbox{$\mkern-2mu\mathord{\textrm{\arro\symbol{71}}}\mkern-2mu$}\hfill
+ \mkern-6mu\mathord{\textrm{\arro\symbol{71}}}$}
+
+%\def\rightchemarrowfill{$\m@th\mathord-\mkern-6mu%
+% \cleaders\hbox{$\mkern-2mu\mathord-\mkern-2mu$}\hfill
+% \mkern-6mu\mathord{\textrm{\arro\symbol{65}}}$}
+
+\def\rightchemarrowfill{$\m@th\mathord{\textrm{\arro\symbol{71}}}\mkern-6mu%
+ \cleaders\hbox{$\mkern-2mu\mathord{\textrm{\arro\symbol{71}}}\mkern-2mu$}\hfill
+ \mkern-6mu\mathord{\textrm{\arro\symbol{65}}}$}
+
+
+%-----------------------------------------------------------------------------
+% Similar to `\rightleftharpoons from the TeXBook,
+% except using `\rightharpoonupfill' and `\rightharpoondownfill'.
+%
+% The first parameter is the length of the harpoons.
+%
+\def\rightleftharpoonsfill#1{%
+\mathop{\vcenter{\hbox{\ooalign{\raise.4ex
+ \hbox{$\hbox to#1{\hspace*{.05em}\rightharpoonupfill}$}\crcr
+ $\hbox to#1{\leftharpoondownfill\hspace*{.05em}}$}}}}\limits}
+%-----------------------------------------------------------------------------
+
+\def\leftrightharpoonsfill#1{%
+\mathop{\vcenter{\hbox{\ooalign{\raise.4ex
+ \hbox{$\hbox to#1{\leftharpoonupfill\hspace*{.05em}}$}\crcr
+ $\hbox to#1{\hspace*{.05em}\rightharpoondownfill}$}}}}\limits}
+
+
+%-----------------------------------------------------------------------------
+% define the simplest possible chemical reaction right arrow, unsized
+%
+\def\chemarrow{\textrm{\arro\symbol{65}}}
+%-----------------------------------------------------------------------------
+
+%-----------------------------------------------------------------------------
+% Make a long leftarrow with its length specified by the passed parameter:
+% Usage: \larrowfill{125pt} or \larrowfill{1.0in} or \larrowfill{2.2cm}
+%
+\def\larrowfill#1{\mathop{\hbox to #1{\mathstrut\leftchemarrowfill}}\limits}
+%-----------------------------------------------------------------------------
+
+%-----------------------------------------------------------------------------
+% Make a long rightarrow with its length specified by the passed parameter:
+% Usage: \rarrowfill{125pt} or \rarrowfill{1.0in} or \rarrowfill{2.2cm}
+%
+\def\rarrowfill#1{\mathop{\hbox to #1{\mathstrut\rightchemarrowfill}}\limits}
+%-----------------------------------------------------------------------------
+
+%-----------------------------------------------------------------------------
+% Make a long leftarrow with its length slightly longer than the larger
+% of the lower and upper parameters:
+%
+% Usage: \autoleftarrow{upper_stuff}{lower_stuff}
+%
+\def\autoleftarrow#1#2{{%
+ \setbox0=\hbox{#1}\autotop=\wd0\setbox0=\hbox{#2}\autobottom=\wd0%
+ \ifdim\autobottom>\autotop\autosize=\autobottom\else\autosize=\autotop\fi%
+ \advance\autosize by 2em%
+ \mathop{\hbox to \autosize{\mathstrut\leftchemarrowfill}}\limits%
+ ^{\hbox{#1}}_{\hbox{#2}}}}%
+%-----------------------------------------------------------------------------
+
+%-----------------------------------------------------------------------------
+% Make a long rightarrow with its length slightly longer than the larger
+% of the lower and upper parameters:
+%
+% Usage: \autorightarrow{upper_stuff}{lower_stuff}
+%
+\def\autorightarrow#1#2{{%
+ \setbox0=\hbox{#1}\autotop=\wd0\setbox0=\hbox{#2}\autobottom=\wd0%
+ \ifdim\autobottom>\autotop\autosize=\autobottom\else\autosize=\autotop\fi%
+ \advance\autosize by 2em%
+ \mathop{\hbox to \autosize{\mathstrut\rightchemarrowfill}}\limits%
+ ^{\hbox{#1}}_{\hbox{#2}}}}%
+%-----------------------------------------------------------------------------
+
+%-----------------------------------------------------------------------------
+\def\autorightleftharpoons#1#2{%
+\setbox0=\hbox{#1}\autotop=\wd0\setbox0=\hbox{#2}\autobottom=\wd0%
+\ifdim\autobottom>\autotop\autosize=\autobottom\else\autosize=\autotop\fi%
+\advance\autosize by 2em%
+\mathop{\vcenter{\hbox{\ooalign{\raise.4ex%
+ \hbox{$\hbox to \autosize{\hspace*{.05em}\rightharpoonupfill}$}\crcr%
+ $\hbox to \autosize{\leftharpoondownfill\hspace*{.05em}}$}}}}%
+ \limits^{\hbox{#1}}_{\hbox{#2}}}
+%-----------------------------------------------------------------------------
+
+\def\autoleftrightharpoons#1#2{%
+\setbox0=\hbox{#1}\autotop=\wd0\setbox0=\hbox{#2}\autobottom=\wd0%
+\ifdim\autobottom>\autotop\autosize=\autobottom\else\autosize=\autotop\fi%
+\advance\autosize by 2em%
+\mathop{\vcenter{\hbox{\ooalign{\raise.4ex%
+ \hbox{$\hbox to \autosize{\leftharpoonupfill\hspace*{.05em}}$}\crcr%
+ $\hbox to \autosize{\hspace*{.05em}\rightharpoondownfill}$}}}}%
+ \limits^{\hbox{#1}}_{\hbox{#2}}}
diff --git a/macros/latex/contrib/chemarrow/chemarrow.tex b/macros/latex/contrib/chemarrow/chemarrow.tex
new file mode 100644
index 0000000000..75837e5937
--- /dev/null
+++ b/macros/latex/contrib/chemarrow/chemarrow.tex
@@ -0,0 +1,184 @@
+\documentclass[DIV=9, pagesize=auto]{scrartcl}
+
+\usepackage{fixltx2e}
+\usepackage{etex}
+\usepackage{lmodern}
+\usepackage{mflogo}
+\usepackage{wasysym}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{array}
+\usepackage{microtype}
+\usepackage[unicode=true]{hyperref}
+
+\newcommand*{\mail}[1]{\href{mailto:#1}{\texttt{#1}}}
+\newcommand*{\pkg}[1]{\textsf{#1}}
+\newcommand*{\cs}[1]{\texttt{\textbackslash#1}}
+\makeatletter
+\newcommand*{\cmd}[1]{\cs{\expandafter\@gobble\string#1}}
+\makeatother
+
+\addtokomafont{title}{\rmfamily}
+
+\title{The \pkg{chemarrow} package}
+\subtitle{New arrow heads for chemical reaction schemes}
+\author{Thomas Schroeder\\\mail{schroeder@ictw.chemie.uni-karlsruhe.de}}
+\date{4 February 2001}
+
+
+\begin{document}
+
+\maketitle
+
+\tableofcontents
+
+\section{What's the name of the game?}
+
+\LaTeX\ can be used to typeset many kinds of different documents, but
+typesetting chemical reactions is esthetically not very pleasing because
+\LaTeX's own arrows \cmd{\rightarrow}, \cmd{\leftarrow} and \cmd{\rightleftharpoons} which
+you might use for this purpose are too short and the arrow heads are not
+like the ``standard'' ones you will find in books or journals on chemistry.
+
+The macro \texttt{chemarrow.sty} in conjunction with the font \texttt{arrow.mf} is supposed
+to make the typesetting of chemical reaction schemes in \LaTeX\ easier and
+especially nicer looking.
+
+
+\section{Dateien}
+
+\begin{tabular}{@{}>{\ttfamily}l>{\raggedright\arraybackslash}p{85mm}@{}}
+ arrow.mf & \MF\ source code of the \pkg{arrow} font \\
+ arrow.tfm & \texttt{.tfm} Datei of \pkg{arrow} for the use with \TeX \\
+ chemarrow.sty & macro for the typesetting of arrows in chemical reaction schemes \\
+ Readme.txt & English Readme \\
+ testchem.tex & test file for \texttt{chemarrow.sty} and \texttt{arrow.mf} \\
+ Liesmich.txt & German Readme \\
+ Type 1/arrow Mac.sit.hqx & type~1 version of \pkg{arrow} for Macintosh \\
+ Type 1/arrow PC.zip & type~1 version of \pkg{arrow} for PC/Unix \\
+ Type 1/arrow.mp & \MP\ source code of \pkg{arrow}
+\end{tabular}
+
+\medskip
+
+There is no need to copy the FontLab file \texttt{arrow.vfb} included in both of the
+type~1 archives, I just put it there in case you want to enhance my designs \smiley
+
+
+\section{Usage}
+
+The examples in the file \texttt{testchem.tex} should be sufficient for the
+understanding of how \texttt{chemarrow.sty} works, and there's also a short
+description in \texttt{chemarrow.sty} of all the newly defined commands. To use the
+package, \texttt{arrow.tfm} must be copied to a directory where \LaTeX\ will be
+searching for \texttt{.tfm} files, \texttt{arrow.mf} must be copied to a directory where
+\MF\ will be searching for \MF\ sources. The required \texttt{.pk} files
+should be produced automatically by a \textsc{dvi} previewer or a printer driver.
+
+There are also type~1 fonts of \texttt{arrow.mf} in Mac and PC/Unix format so that
+you can produce PDF documents easily. To use the type~1 font it must be
+copied to a directory where \TeX\ and friends will be searching for type~1
+fonts, the best place would of course be where the Computer Modern type~1
+fonts reside.
+
+If dvips is supposed to use the type~1 font instead of the \texttt{.pk} font you
+must add this line to \texttt{psfonts.map}:
+%
+\begin{itemize}
+\item for Macintosh:\\
+ \verb+arrow arrow <arrow+
+
+\item for PC/Unix:\\
+ \verb+arrow arrow <arrow.pfb+
+\end{itemize}
+
+If you use pdf\TeX\ instead of \texttt{dvips} and Acrobat Distiller you must also add
+this line to \texttt{pdftex.map}:
+%
+\begin{verbatim}
+arrow <arrow.pfb
+\end{verbatim}
+
+
+\section{Disclaimer}
+
+The macro \texttt{chemarrow.sty} and the font \texttt{arrow.mf} are quick hacks for my own
+needs, I cannot guarantee that they will work an other systems than my own.
+In exchange I am publishing this package as free software which means you
+can do whatever you like with it and it comes for free. I would just like
+to ask that in case you do make changes und publish the package or any parts of
+it to add your own name or replace it with mine. Thank you.
+
+Any hints and suggestions will be accepted gratefully.
+
+
+\section{History}
+
+As I was looking for new arrows I found a quite new font named \texttt{cryst.mf} by
+Ulrich Mueller which I rather liked. After a few modifications the new font
+\texttt{arrow.mf} was born.
+
+I received a macro by Andreas Hertwig with which you can typeset arrows
+that will change in size. I modified this macro to my needs and replaced the
+original arrows with the arrows from \texttt{arrow.mf}. The original macro was apparently
+posted in a \TeX\ mailing list, but its author is unfortunately unknown. So, if
+you are the original author and read this I'd like to thank you for your work!
+
+The most time consuming and complicated part was to produce a type~1 font
+from my \MF\ sources. Unfortunately there is no free software to do
+this \frownie
+Also, if you include \texttt{.pk} fonts into PDF documents you won' get nice results
+because Acrobat Reader renders them very poorly. Therefore it is vital to
+include type~1 fonts into a PDF document \frownie
+
+Using \texttt{arrow.mp} which is a slightly modified \texttt{arrow.mf} in combination with
+\MP\ and \texttt{mfplain} I was able to produce graphics in the EPS format which I
+imported into a demo of FontLab~3.0. After a few steps and reducing the
+size to 79\% I was able to save the font in type~1 format.
+
+
+\section{Problems}
+
+Unfortunately I am no expert on creating fonts. This is probably why the
+arrows will show on some platforms only at 125\% or larger. Below 125\% there
+will only be some strokes \frownie
+
+I think if someone did a manual hinting of the font then this problem
+would be remedied, but this will probably not be me because this is out of
+my league and beyond the time limit of the demo of FontLab \smiley
+
+So if there is somebody out there who is able to help me with this problem
+I'd be grateful.
+
+
+\section{Future versions}
+
+To tell you the truth, I don't really know if there will be future versions
+because as far as I'm concerned the package works as it is supposed to.
+The direct linking of the \pkg{arrow} font in \texttt{chemarrow.sty} is maybe not so nice,
+so this might be something I will change in the future. The rendering
+problem of PDF documents on some platforms is also not very nice so if
+some sort of solution pops up I will publish it.
+
+
+\section{Thank-Yous}
+
+\begin{itemize}
+\item D. E. Knuth for \TeX
+\item L. Lamport for \LaTeX
+\item to the \LaTeX3 team for \LaTeXe
+\item A. Hertwig for being so nice to give me the original macro
+\item to the unknown author of the original macro
+\item U. Mueller for \texttt{cryst.mf}
+\end{itemize}
+
+
+\section{Author}
+
+Thomas Schroeder\\
+\mail{schroeder@ictw.chemie.uni-karlsruhe.de}
+
+PS: Sorry for any misspellings and such, English is not my native
+language \smiley
+
+\end{document}
diff --git a/macros/latex/contrib/chemarrow/testchem.tex b/macros/latex/contrib/chemarrow/testchem.tex
new file mode 100644
index 0000000000..277f5c02f7
--- /dev/null
+++ b/macros/latex/contrib/chemarrow/testchem.tex
@@ -0,0 +1,117 @@
+\documentclass[fleqn,12pt,a4paper]{article} % normal
+% \documentclass[fleqn,a0,portrait]{a0poster} % poster
+\usepackage{amsmath,chemarrow}
+\begin{document}
+
+% \tiny
+% \footnotesize
+% \small
+\normalsize
+% \large
+% \Large
+% \LARGE
+% \huge
+% \Huge
+
+\newcommand{\aqua}{\ensuremath{\text{H}_{\text{2}}\text{O}}}
+\newcommand{\acid}{\ensuremath{\text{H}_{\text{3}}\text{O}^{\text{+}}}}
+\newcommand{\base}{\ensuremath{\text{OH}^{\text{$-$}}}}
+
+
+
+% \section{size check}
+%
+% \fbox{{\symbol{65}}}
+% \fbox{{\symbol{66}}}
+% \fbox{{\symbol{67}}}
+% \fbox{{\symbol{68}}}
+% \fbox{{\symbol{69}}}
+% \fbox{{\symbol{70}}}
+% \fbox{{\symbol{71}}}
+%
+% {\Huge
+% \fbox{{\arro\symbol{65}}}
+% \fbox{{\arro\symbol{66}}}
+% \fbox{{\arro\symbol{67}}}
+% \fbox{{\arro\symbol{68}}}
+% \fbox{{\arro\symbol{69}}}
+% \fbox{{\arro\symbol{70}}}
+% \fbox{{\arro\symbol{71}}}
+% }
+
+
+\section{chemarrow}
+
+
+\begin{displaymath}
+\aqua + \aqua\ \chemarrow\ \acid + \base
+\end{displaymath}
+
+
+\section{rarrowfill 2.5em}
+
+
+\begin{displaymath}
+\aqua + \aqua \rarrowfill{2.5em} \acid + \base
+\end{displaymath}
+
+\section{larrowfill 2.5em}
+
+
+\begin{displaymath}
+\aqua + \aqua \larrowfill{2.5em} \acid + \base
+\end{displaymath}
+
+
+\section{rightleftharpoonsfill 2.5em}
+
+
+\begin{displaymath}
+\aqua + \aqua \rightleftharpoonsfill{2.5em} \acid + \base
+\end{displaymath}
+
+
+\section{leftrightharpoonsfill 2.5em}
+
+
+\begin{displaymath}
+\aqua + \aqua \leftrightharpoonsfill{2.5em} \acid + \base
+\end{displaymath}
+
+
+
+\section{autorightleftharpoons}
+
+
+\begin{displaymath}
+\aqua + \aqua \autorightleftharpoons{$k_a$}{$k_b$} \acid + \base
+\end{displaymath}
+
+
+\section{autoleftrightharpoons}
+
+
+\begin{displaymath}
+\aqua + \aqua \autoleftrightharpoons{$k_a$}{$k_b$} \acid + \base
+\end{displaymath}
+
+
+\section{autorightarrow}
+
+
+\begin{displaymath}
+\aqua + \aqua \autorightarrow{$k_a$}{$k_b$} \acid + \base
+\end{displaymath}
+
+
+\section{autoleftarrow}
+
+
+\begin{displaymath}
+\aqua + \aqua \autoleftarrow{$k_a$}{$k_b$} \acid + \base
+\end{displaymath}
+
+
+
+
+\end{document}
diff --git a/macros/latex/contrib/chemarrow/type1/Arrow.vfb b/macros/latex/contrib/chemarrow/type1/Arrow.vfb
new file mode 100644
index 0000000000..1b8de6049b
--- /dev/null
+++ b/macros/latex/contrib/chemarrow/type1/Arrow.vfb
Binary files differ
diff --git a/macros/latex/contrib/chemarrow/type1/arrow.Mac.sit.hqx b/macros/latex/contrib/chemarrow/type1/arrow.Mac.sit.hqx
new file mode 100644
index 0000000000..4960dcd9a1
--- /dev/null
+++ b/macros/latex/contrib/chemarrow/type1/arrow.Mac.sit.hqx
@@ -0,0 +1 @@
+(This file must be converted with BinHex 4.0) :$@&bFQph)%eKBbjcDA3!8dP8090*9#%"!*!$'B!!N!3aEP0dG@CQ5A3J+'-T-6N j0bda16Ni)%&XB@4ND@iJ8hPcG'9YFb`J5@jM,L`JD(4dF$S[,hH3!bjKE'&NC'P ZFhPc,Q0[E5p6G(9QCNPd,`d+'J!&%!!!'B!!N!0b!!%!N!0bCei0TD95CA0PFRC PC+@P!+@3"!%!!$N!3,DK%c#fS4-k!*!0#@Q8!*!$c`!!-V!!!"La!!0KFR*[Gb" 0B@-!!2Gj!#m!$3%*!D%$i!$d!Z!"$[rmrr($3!!!J!#3"k@3"!%!!$8!!,DK%`1 fS4-%!*!$FJ!!$FX!N!0b!!A8I!#3$Q&bFQph!!%%mNaA4Nj'6%4()3#3"!%!N!U !!*!*&6m!!!b9)RX!!!d!$!"VJqc-ij5[I@F$ZH*T$KUX9pU)HfER+,N@r9EQS,9 q5kqemhUCjV&E-dkcmkfecfqf@Ci0h%IcZKa%"eRd+NeEbqG18YQYA2-Al[QFIRR f(YI1crIcYHXDe0@466MKC$QqR!3*#d(#3JDE,!"j3(CG&J!%!)#T#`!QF#IS3r& IVLbY8!+`XD5'f(NaZ&&-2bk(EqH`K1+'d(NmEM*#S9#@8#JZKMBf2M`QRFrLFRc TI+BE%N,R)hl-+!4aJKCZcXjZ6Lk))iAL!)h@"bBPdQ1KK`-%+"6%`38l'MSi)!a @0"q*BXDb1)Ef@&"r6J`AFA"@FibNV@2XTdaH)Nb+,05NAi6!l!`ZKjf#-*Jad$Z *c3kL*c#4KAL4rJ1R*l$B+AmBq22TE&Dd&bH@c83SDS59k-IDcQ43@IcS1#5'cNj NUVN`$S2*Bl-i6#ShNB@9(l&cJ$ApP3f0BdA(FjL*LBL,"U8a@E&aI'4K-$H"c[P lI#D(mHm&Jlf!PmYHhA3iY)S6c@@`1,&)#*r1BG"jM(%!akPd&SFIQV*e[)*B#&b (I6DQ"p,j20CfC"1#Y4&@0rbEe$lj4b@m[ERENCf))q,XK#acABBi1lXLDErk4#I aH%`1(qpE@-ia2BB&'iV*h-k-0J4!Gim@H0&'jf9X+feU[YC)ZG'eZkhcD0(G,26 'TqAb#jE@YJFf0iTT"T("GHmeAGLilIk"64,E%T2+0-&pmpVEj19Cqj[4bZD%+F@ (MFUISQHU3PbMdJXI4*%YmS12*UcapXfpI!0pI-,9Pe4MF0jrUrl,253C3rjplKX aiqZkIi[e(SJip(a$f6RV-jDHT!q3!0dH&4%k9pKcZVQVTXrBV60VaM0lNmD,)DI -E"kBjZAYb5b+l!a--,h@(5pd4el%"aAH4$ZfV*Nri`)e2m(KdBr2PUcF39qE%Rj 3k'kqPhdf,89l9$G-*1S+Uc&10@mBR&@dhY,bQiU3!,lJQ0*)blj,Ec2#XkPFkiJ jjp)TLDhbl+2#DIa!3X%!YIP!qHKIdV1B%EiE'`bR,bLpDccAl`Qi3VaS%*@iHbd a2Ib,kUYY"4hZpJ*Lb-J6%EM9G+P9ZGRE@hBhehjeX*Hhej4EllZ+@TBC$k`Vrj, ch@$jFIr,e&9hQSLEMhN9q(Sa',VZUHpjfkjfreELf5c[mRjifbUA-)qEl4qV2IA 8Ld@(rcchaT)k2CABZmTjqIl2jYM2GR1Y&haM9VDdm(,jU8eDEdflU"k2p[*frf" fhdq,Pc%rd4LahPFb)T)9'Cj-Z1&,$Q,[IcQrhLmRrJ,RVAerMlEYJjaE,YDKGL2 KPF)[ibjFcY)5lD5Q$*jTY2R!DpAMBri2BMqBHrTXq%lT0rTZBQIVDF0HK&eRiLa cmJ,1,+c8UbmShl2AdkIcrGC,0`2UH*NlI9ESGj%IV[Kb+2lX@G'p["r5PiKb3ar CVeGXEY,QRkKYL9Rid+8ZBR$"NAThkjj6MYH'"KkSI2R5dGY$jm`UV*l2@0(Jdf) ML$NIYZfca`3hrDXA6h@(Rj!!$UrXSZE15T5FYTE`2XZ1IGk@YZpd`mCmFqCVkbH cNr2+PY3d0ciEUHcCYF#-dI#Uj-LfVdHmEP(qfXN4K1khDMR*#r51$-ZeqVcCqXr 68RZhbiV1aFbkPhIk`k915E+9&Q@0GjEGV)PF-Effah41U(r5cpe[Mj`mC,fA1(2 J`d9afABa0ZaHXj4MDe)*#jH[[1f6SY8R-mPb@V`5,6cY`h1rNjhblD1UiLf(KcN Ij+acYA&l2IeUUk066UB&0cmM,Lh2b-#I@RA)FE&UhZHZ*ZA2(VmqpQ&[Ghh9kQc L&P[G6[qBkQ[@m9cG6B,J[h9ka1XE$fih&Y'V9aqfVDNNb*FC'N8GI9`e2k&iJ'6 9c&BGV0r`Y1")fTfLcZq+p59GCe&9i+'06mk[X&PN222!&bI#eY5YF@jjBelK1C! !e0YbTC(kaL2`q)lN(mjBE%bZeqqD*E2lT-&[Ylfi[U``!9cAkXkN"%DQGj!!Slp `iGf6AYMJ4Qh5[c"8HA$kjY(HZ)Mf#`Z2@"HNRTkMlI3LlhY4D[lfC6drAR[cf8c apEZ([R)DPRlPCqCHX&pdX6mRCTU0'@VUXlA#0MMidR,lf8969Zf*PM8G2hI*e'q RISPfD1M$mXpV0TJYUN04Fpf[,bQ$CPBpV8J@DKrY0E+Ie6Vh,qD%dU-hVHE'5N` Y&VXHAlGcS26E-l@,0bIIIEE*eqhbm&#C30aadpa0`VImLIMUe[8NPX*&a%aiqQL E4G!fKCh50SE$DDLCl[C`I[0*,GhkACjrfVH8alhD[q0Jp0hm,96jk5h+dU5DI6Z H9cBZlpY"0khCAhR-T#8lkF$A,0q(9qYqQTecmfq+(d[*Sqj&Sc(dMk8[[ZJfI1' HeC1@Z5FZ[jrpemEd!p82I#3d%qE2DjpqIKXX,6bl)-IjeI+$YA@b@j&((X@FE0) 5IB4ql(MbdjMNlkJqakFDlX`Y&"%ZIV@Am[6`jUN&4pD5UdC6Z9FmXdJ[PcFZH%h 4IhmNr`(PJ-aCCeGESTE1h-&e4KdP8KjDR"-b1Yhm&$%ki2R'I9P2IaUmbAUGprV D-C4M1J#Rr*N%J)hKrlF-rf9BJ'JfNmlM`jF*AMbFdi'@,M`!Flm!hirJQH$[%f5 &!36J&lc+6kh!T4G!m`Y5[aJYA)#r"6%C5$+,(iGJE`B"p#M%D3N&LH(bN!"!HM4 mQZ!QaLh4@+ZA!Gb0i@i*pi!-!!Sp!F%*!9Vd3d#RpJkBPK@V-*NbS'0VG@+UEH, XU5Br1VirE4qc#,)VYHM(2S*H(d02'K"II`@+`3C`'"d%qm!#N!!"&S1--%GiRJp 3Y"Yi!M,FP`,2NMI!!qdFcci2lKj`&m$XD#dJ3&3EI32d8#N`3KA!!N@P(LLU%'K f6)1-bJK&86fiDm1G!(HBmEphP@CA!!%-*S!"JGE[$frY[mU'k2Hrk"h*bPr`N@6 "1i11j,jh"SBMkHMc5B11j0G%eB3"a2Z*&K-''%kF--$aHCK"HhXlp-$aqeepd%! XIUA'ZmclZV!%KQTpAKqa$c0X-@V$rIVQpAAKJ543a`h9q&DPZ2CGAJ0j$``i9Sm @p[eUZHKG[56Y[4AMp@`c-1MSU*D2elX%,ZA&kjKHVZi(JmFG)V81qqAUPHVUNY) fYAi2E41,feZVP3f[-,h-i"jmN`VlT&hCJGm*C3CLXIK1lYlfdBUIah8a,$qUeLY J2q0,9S(l09bleplHfYTk[8!&k`Re5`!kYV9eU1f!BA[VBe&KAfr&44b("824LK) j@P+'L6Vrqb3VNrd6KdAj(hcekMm--2`2!`aA+2l6!-IKpIDlJ4VAeIhGB!crh@! #rmeJ!PH-'q"VrGpaU8+KUe#S$8JN%VPXecXFQN-$H"U,Z,i-bcR'ibLfDrK'J-U '*r,Kd5Ca!-JU06qCF0*pqe$2qQ%5kErU5dD9CFTG3lre4f2MBMf&8)JUK9J&IqZ [%C3Q9`M,dArdTajK+N'2eLPr+45q(Cm%*[Sl8l03@[QS8$A'CilG$`4mfG!bDDL 3!$E*dr$l44kH+8b,5)d-cma8#QPNi9Kqb*1aqmP1DQG(TY&SiH&#P'BRa$Y-cC- "QD`14ehhm6TS!3[BU9$AIiaAVq+#JZ*8*aLr(&@S1`cMT80NUFB!QY0SFK60I$R "+e'dCqcUeUccQChi*B`[U9#)'DqAbfP#1Ib%k2R)6XA)1$mXa-C@!U`HfFl*cSN XKqP'TC1h%%dZN`RPQF*Gjh22jCk$Y5PA[-2"N!#X8`@A8U@%'c`VP@2K2(@!2L! #k``IcchN2rNL"iJcP[IkcK$)20m6b"&6#kN1H!pB!)m-35fF348H+J[8!a9JRdU JmP"BB$(Km'UNLG-2CdZiM)J@DYQ#L!&'42-1$1JRp[F6&5J`XT!!3!-iDrDE3al 1SjLIN83#d(ji65K3)l&%,*C)*0LF#`'*%Cb#L',dM8Cr!a33J(C`5)B,5kLCkFF lAL2VrJ*JPpJN!'A9*)$4*2Qi*@i'2hJDJ9-d(SDN5D#HKD")8[YMBrCN2QJi!Xq 3!0,&#dD#(jc$4dL3!#2K*iarGaZ3!%KU(RkkZL236@dr[V!i!-9jc"qkiAR(&bl rqY03b0VJ8&drf*[Qm!HLDGj"[J%3$pBmU%4SRP'fD"j@2U@Z$3N&fN$)LQBl3ld 5RTI#F`dV1K(Mlm)caVA!-mBp)F$`!1K2dI3+TMQSDi"VYT2D*lJfT#N5TJeMQPB iVZ'pTGH0De,F6e0,6*Y1Rp!-Q4-DN6@TP8pSaRJ0rKm!TC!%!3!!1!!!YU%6!lD K%`3!N!22!!!2#J#3!h)!#%Nc!*!1BA*bEhFJFf-!!@[d4NC*6%406eB"!*!%33# 3#S!!N!N)0J#3!p9cY!!!$3!M4!iL+[d*83NUk8$eZ2,B'kUSDL8!QfIqSDm4P3P 5GTilk3qL8,9%Xjkb8'@"CYKH1PhdkRm$iP0f(rNm3H6KHH@$Gd0K+c$redFFaC+ ZD`0%VP@lK3%E&9Y'Y&6X1-R#'(*CA3U@$iGY9!F4mE9K'5dPBTC[3PAr9X55eG" i1SNq32@dK&EmfdZIlB`MSbLZ#AIrqC2fcrpjr0(2!p2$5Hqip21kZU2&2P`1*QS P4fYA+!L@EkJe&%8I*#lL!U'h[Ap`eP1jA!mjEbkpj[ZAfCI*93#PN!3"!!!j!!# fS34ZYU%'9J!!$FX!!"P3!*!$FJ!*0RB!!"8l!!!*k50%!!!0!%&bFQph,RCQBJ! !65*@4N)a4NaKBJ%!N!5"!*!+J!#3"`a!H)T[NYGEdI,+@ij&klcH2KE0[!C4rM3 rVl2*bLCbmrCTiDNRpH6L1f2i[Z1d2LhGEiHR['2jGFB'pDc[p'TQIQGHCfF$YLI 'E"[EjY'YI4-[[p2Y*CjbmC3VF&p56MRP(jPX-YYN(aP[JJa10Ti!!"f!IJ*dmTS PE60UC*b,Ihm5R6ik!d3-q%2%Y#fTSBpaNZ"Q-+j%F,@-N`8hNh%q`G80q)2`Sp0 8Zp8"I`3"*)bm%SqVQ6bE%K46CJri!`M"e$**GUY8h*Sli+p!'+P#*UQBKE5Z&2M -#)bNN9%h-'9PL#ZQN4R`Ke(1P1PU,UHa)49F`Jb5(d*8F2@-Ua6F,-D0%ab*$q% %`FeKA*AJ5(i)icPAbfdr8A$FpJQ#ilC2&"bhr56"NHi`hS8Z8iRR0HD2$bHMLjc ai44dk@c5rf&*6PGb+FEp2h52Qi4eVUFKR)T0,KG%0A*C*8iK#Q%be#[LZT*Q)Nr $aS+49a1G*+S-Tb065(HUCNj,FJ&6+"5kVTJ$rP*-49Be4I!L1!0+QZLFNNN-q-Y aTP#4S`$U2+GR)DZBDNCAZfKF'DB*fY55+H,$1"Y+,UqD@Sj5'-!jb1U&($2TA-5 0G&TKdYq09'mfTA)ETM2TQN&5JcJ2VY8"e'#6DKS$IMpQJ",0L&VNHqK'%$146jN Uh3QJ$Pe'J5`-S*iba2D)(l13!01ZB(0Q)dHVK5GN$P6K6`"cNG'BS#$1*dGdPU! )'QK8@R2T!#i!faCXaS930aB8#P!T,N,59"@bPVRF5+P3Fm8!ci0#fQ3dSBR"CM3 cf))@"ZGM2S1YD'@`$@d-,X!#"KGL)B2YD'G`%4BaZ"L,'9b#*3`Za9)'Pf%CJc( %'&b1j3bZ`!S'9f)PJkZ`LX(9@-eJ"cSB["JA-lJ'DaLm"*F`Z"CV'9b(G5cKlk% GV-3hU,3L@D3MH#mkLAHc@)&,LrIGM*GM2@8mVQPacB`AD0@8i6)8-JRD'A($j0& k(f9&BA'8SB!b,k-6R3c'%@F`!3Um$"9m4"Hk'%b#9Vb-&%Le$!fd%f9FMXXCh!" D*c*d8"4PT%'UC@4!kC0KJ0D#M#bb$'l%4JC08%jPj%!aPT%(cfF""3DldFeJ$hS B[!+d,@6dSTI"6GM%)R!Ppe`9LI$M+NS%k5R$eH+HQi3b[&mN)DrT#EjrVf&,INB Y,`kE"FH,`l@#Sq*3L3qm[P%lP4bIHafYIS0+$X[E&Qp[LpYKI"#UVQ[CR%CQK[! K**4NNZfK#$lXFZk5[aiLNefk5UD@ib0XZqC64N&Xma!qLP9ZEBM#3V+JkG`'iE- 2IBM4PJVK"QjA(Hmc(a-Flc-I&ac[-eX&4hdQJKZ&CF91X%h3ENSUX0ec9%b)BSG h`ad5`NhS,0"pcRd#DLEKYTj23Nd,,SLEi5BYJNmKEbS*0DfBY"P#f)QFDf`PGSd BkkVcB6F-(V3ph,9k(Y"E"%F"MH$6@*[39*05b62f'Aje&T@l-Rc@l93*SiHhJld 395Q-@m'UMXklD4Lh)9i`U3V&DC(iF6Yk@IH)i(1d-S`0DSC[N!"5I*kUKY[m`VJ $)k)Mf%H&*0[VEGRp--a%&r8589LLZ*2lUUYTeQC&dVi!h8KUF8A2'$`iAq5qcDD !PZ&,-0@NaKa5HIDrM,35Gq[M9j!!8+R1m#4pPAFdNXQ+@MQqaRT@VX"V'6N@a9f LEieF#H,V81+&2%hhi@kNDDP'F!rVJ3UYr5`PY4,hZVf1488B8)T[8(!5C#!9JR* mNr@k%8d9Z)rCRDCe@U"!NE4+I'[%EfrKhXr'8L8cH4%Va31-6bNk0BJS[LfFFUq 6QaAiMPI84(a$H""0EMN*iEYSFSdXarI30,Sm3hJ)6Gkfq6kD4T)Da!r3*&iNI2J KQQKPK[%MY(MZKR!!VCl)(k29%rN6Y)k+M1#RD"hG1cp$ZcIhjfMhjMk-pV'j[d$ lb&`r$U)eclGP2jCjCH33BTkBAb,QLAN%X6'RIi@Bjr4Ka%D%KI&VLVHHel)k,E8 3(NA-Hihi$6SmGBqK`e2h1$V'V"T!akM&[m9DGeB36f"ebM!TPQ8i!USaDDSTR6S Imb6B-K(bRS,LbAZD9XmEj[f1bRI4[0p$'BhT(k!8BrT(+,a+r3Rd`Z6&p"R3&R4 &2J[9%rPRU'-H2JFD1Z,Kmp#mZ5p!mqEq"@iT,Xlp+l64Q,i)9F6d+$*H62p'VeC &-5r"m-5m$'2-kEr$m*aq"FDS)6B9L@j0k"Q%iBAd943mEFG3m,3j+)`C0B6#U*l Ad1Z&p$KY94l5#)E4@jcbK,q%A[X#*I3H51q!*6irCFddHSl`Dbr`Cd(f[GJihZI $-(d6I%(3dphdQTVk#RSqP)S6j5*4A54S)+E4@8lR9$V2S20-1XqL-qU,XTe"2D& k96aPlU4AKl#26)$I9j3-6(bG#p$YhF0"3V@Ba#HYpi9IIme-N5L0cL5G#LQR!TC ,qjErjahd[eq'DpF*p3F[jp`'3RiBK*k4Me&X!)HM)BjHiqJi4m-F[F5RRNeS3H8 8cTe1D'l(89mCk)QdK&i`TH&Kb#rkmTKTe9ReeLaVYMA(QQZG2m`'0&JA@"GEDk` ,VBX'Tc4ZR@Fef8UcVE4Bmqfl@QfPc9B@@![YZpU2,KVFXGKD-Q,G8KV[hlPXD(V X`(*VKEA5@V@V0"`T+kq)9SilS@VmL4-QRV6DXQTYR`6V&E,N",a-b,)NmLK+bq& CEYpce1MHqTlhEfCAhq(aHj+k5JHe-AT656cPRm*rErMAGi6rrl"9'YThp0$5cZ@ 0Ephrjleh"[QZEUaIIerlEBe"iPK@%R6@[L1#lQZ'VaRH,'f@ALE4aI0qDJpcU&X @Z5LGrF%*N!"+Jj+dE6SpLLA8VP#ICC8-AQp&(`[kf)mV$cl0be0rm$`aTkmje(I [MEM"hLYCPdR('LajU0(1f[ZG1ZHd`j)cjD"df+NV'6a9#(L3!%Bc!FdNS0B9d", UHf"E8F$J8jC8kc4)fkq8"a[Y(ZFHCl*GrEMNc$[`YSB@dY$QDTJIkZ[IJ@1ANSL K38ZbrIC8kETGC)A6EYpM5djeQfc[FhUG1qbcl%Rc*2Z-PC)Mfp1N`9I)h$Gec5G G0DkZ9QkZd2@)*6eUelQbXL6V&'Ib21R9ff0[+fJP"60G"@dM#SkIEj'T6Sqceej U9cQ5C*m6NjbJh5!0([Z($@dNSX%9X5$8prKfh'*h9ffkG9[hPTZUGZqrkYUYfmF 0pYp3YEYRbjiEVkZk8YYcmjCVa`dGZRiF#qbEBKD3!*KQ9d`6cdSaEmpDdYR10$G [+jblRC!!2HQ`6%%a+6#6RHU$NM2e)HN&CqVEQTT)dhLKD5[rKHD098%IAaA9U+6 e8NNliq&!+55Vj%jjTkq2UMXpHp$j2k@3"!%!!$!!3!#3#Jm+!*!(FJ!!U!MrN!3 !N!Sk9J!!: \ No newline at end of file
diff --git a/macros/latex/contrib/chemarrow/type1/arrow.afm b/macros/latex/contrib/chemarrow/type1/arrow.afm
new file mode 100644
index 0000000000..83d5953473
--- /dev/null
+++ b/macros/latex/contrib/chemarrow/type1/arrow.afm
@@ -0,0 +1,28 @@
+StartFontMetrics 2.0
+Comment Panose 0 0 0 0 0 0 0 0 0 0
+FullName arrow
+FontName arrow
+FamilyName arrow
+Weight normal
+Version 000.005
+IsFixedPitch false
+ItalicAngle 0.00
+FontBBox 0 0 969 446
+Ascender 700
+Descender -200
+XHeight 500
+CapHeight 700
+UnderlinePosition -100
+UnderlineThickness 50
+EncodingScheme AdobeStandardEncoding
+StartCharMetrics 8
+C 66 ; WX 395 ; N B ; B 2 226 937 446 ;
+C 67 ; WX 395 ; N C ; B 2 43 937 270 ;
+C 68 ; WX 395 ; N D ; B 35 61 969 431 ;
+C 69 ; WX 395 ; N E ; B 35 226 969 446 ;
+C 70 ; WX 395 ; N F ; B 35 43 969 270 ;
+C 71 ; WX 395 ; N G ; B 2 226 600 270 ;
+C 65 ; WX 395 ; N A ; B 2 61 937 431 ;
+C 32 ; WX 500 ; N space ; B 0 0 0 0 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/macros/latex/contrib/chemarrow/type1/arrow.inf b/macros/latex/contrib/chemarrow/type1/arrow.inf
new file mode 100644
index 0000000000..b29c2e1231
--- /dev/null
+++ b/macros/latex/contrib/chemarrow/type1/arrow.inf
@@ -0,0 +1,21 @@
+FontName (arrow)
+FullName (arrow)
+ApplName (arrow)
+FamilyName (arrow)
+Version (000.005)
+isFixedPitch false
+CharacterSet (custom)
+Encoding (StandardEncoding)
+Pi false
+ItalicAngle 0
+CapHeight 700
+UnderlinePosition -100
+UnderlineThickness 50
+StemWidth 50
+Serif false
+MSMenuName (arrow)
+VPMenuName (arrow)
+WORDMenuName (arrow)
+VPStyle (N)
+WindowsFirstChar 32
+WindowsLastChar 71
diff --git a/macros/latex/contrib/chemarrow/type1/arrow.mp b/macros/latex/contrib/chemarrow/type1/arrow.mp
new file mode 100644
index 0000000000..b043354815
--- /dev/null
+++ b/macros/latex/contrib/chemarrow/type1/arrow.mp
@@ -0,0 +1,90 @@
+%
+% arrow.mf produces new arrow heads e.g. for chemical reaction schemes
+%
+% Author: Thomas Schroeder schroeder@ictw.chemie.uni-karlsruhe.de
+%
+% Version: 0.5 February 1 2001
+%
+% arrow.mf is inspired by and based on cryst.mf version 1.0 by Ulrich Mueller
+%
+
+
+
+mode_setup; font_size 10pt#;
+font_identifier:="arrow"; font_coding_scheme:="UNSPECIFIED";
+ff:=0.82;
+u#:=ff*0.10pt#;
+br#:=108u#; ho#:=100u#; ul#:=32u#; % Breite, Hoehe, Unterlaenge
+define_pixels(u,br,ho,ul);
+
+
+beginchar(65,120u#,68u#,0);
+"right arrow";
+z1=(0u,33.2u); z2=(88u,33.2u); z3=(88u,27.7u); z4=(0,27.7u);
+z5=(116u,30.7u); z6=(63u,7.2u); z7=(62u,9.2u);
+z8=(76u,30.7u); z9=(62u,51.2u); z10=(63u,53.2u);
+fill z10{dir -28}..{dir -15}z5..z5{dir -165}..{dir -152}z6--z7--z8--z9--cycle;
+fill z1--z2--z3--z4--cycle;
+% labels(range 1 thru 10);
+endchar;
+
+
+beginchar(66,120u#,68u#,0);
+"up right harpoon";
+z1=(0u,33.2u); z2=(88u,33.2u); z3=(88u,27.7u); z4=(0,27.7u);
+z5=(116u,27.7u); z6=(63u,55u); z7=(62u,53u); z8=(74u,27.7u);
+fill z6{dir -32}..{dir -22}z5--z8--z7--z6..cycle;
+fill z1--z2--z3--z4--cycle;
+% labels(range 1 thru 8);
+endchar;
+
+beginchar(67,120u#,68u#,0);
+"down right harpoon";
+z1=(0u,33.2u); z2=(88u,33.2u); z3=(88u,27.7u); z4=(0,27.7u);
+z5=(116u,33.2u); z6=(63u,5u); z7=(62u,7u); z8=(76u,33.2u);
+fill z6{dir 32}..{dir 22}z5--z8--z7--cycle;
+fill z1--z2--z3--z4--cycle;
+% labels(range 1 thru 8);
+endchar;
+
+
+beginchar(68,120u#,68u#,0);
+"left arrow";
+z1=(120u,33.2u); z2=(32u,33.2u); z3=(32u,27.7u); z4=(120u,27.7u);
+z5=(4u,30.7u); z6=(57u,7.2u); z7=(58u,9.2u);
+z8=(42u,30.7u); z9=(58u,51.2u); z10=(57u,53.2u);
+fill z10{dir -152}..{dir -165}z5..z5{dir -15}..{dir -28}z6--z7--z8--z9--cycle;
+fill z1--z2--z3--z4--cycle;
+% labels(range 1 thru 10);
+endchar;
+
+beginchar(69,120u#,68u#,0);
+"up left harpoon";
+z1=(120u,33.2u); z2=(31u,33.2u); z3=(31u,27.7u); z4=(120u,27.7u);
+z5=(4u,27.7u); z6=(57u,55u); z7=(58u,53u); z8=(46u,27.7u);
+fill z5{dir 22}..{dir 32}z6--z7--z8--z5..cycle;
+fill z1--z2--z3--z4--cycle;
+% labels(range 1 thru 8);
+endchar;
+
+
+beginchar(70,120u#,68u#,0);
+"down left harpoon";
+z1=(120u,33.2u); z2=(31u,33.2u); z3=(31u,27.7u); z4=(120u,27.7u);
+z5=(4u,33.2u); z6=(57u,5u); z7=(58u,7u); z8=(40u,33.2u);
+%fill z5{dir 22}..{dir 32}z6--z7--z8--z5..cycle;
+fill z5{dir -15}..{dir -28}z6--z7--z8--z5..cycle;
+fill z1--z2--z3--z4--cycle;
+% labels(range 1 thru 8);
+endchar;
+
+beginchar(71,74u#,68u#,0);
+"new minus sign";
+% z1=(2u,33.2u); z2=(72u,33.2u); z3=(72u,27.7u); z4=(2u,27.7u); z5=(0u,30.7u); z6=(74u,30.7u);
+z2=(2u,33.2u); z3=(72u,33.2u); z5=(72u,27.7u); z6=(2u,27.7u); z1=(0u,30.7u); z4=(74u,30.7u);
+% fill z2--z3--z5--z6--cycle;
+fill z6..z1..z2--z3..z4..z5--z6--cycle;
+% labels(range 1 thru 6);
+endchar;
+
+bye.
diff --git a/macros/latex/contrib/chemarrow/type1/arrow.pfb b/macros/latex/contrib/chemarrow/type1/arrow.pfb
new file mode 100644
index 0000000000..43061f97a2
--- /dev/null
+++ b/macros/latex/contrib/chemarrow/type1/arrow.pfb
Binary files differ
diff --git a/macros/latex/contrib/chemarrow/type1/arrow.pfm b/macros/latex/contrib/chemarrow/type1/arrow.pfm
new file mode 100644
index 0000000000..c38c343154
--- /dev/null
+++ b/macros/latex/contrib/chemarrow/type1/arrow.pfm
Binary files differ
diff --git a/macros/latex/contrib/chemarrow/type1/chemarrow.map b/macros/latex/contrib/chemarrow/type1/chemarrow.map
new file mode 100644
index 0000000000..cb69290f25
--- /dev/null
+++ b/macros/latex/contrib/chemarrow/type1/chemarrow.map
@@ -0,0 +1,2 @@
+% public domain.
+arrow arrow <arrow.pfb