-
Notifications
You must be signed in to change notification settings - Fork 3
/
README
125 lines (99 loc) · 4.57 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
Commentary:
In scientific literature, it is common to format the symbols for
chemical elements, molecules and unit names by using roman (as
opposed to italic) letters for the names. This makes such things
cumbersome to type, because one would have to do either
$\mathrm{H_2O}$ or H$_2$O. This package make this typing easier by
providing the function mu2tex. This function converts plain
ASCII molecule names and unit expressions into either of the above
forms. It also makes it easier to write numbers times powers of 10.
INSTALLATION
------------
Put this file on your load path, byte compile it (not required),
and copy the following code into your .emacs file. Change the key
definition to your liking.
(autoload 'mu2tex "mu2tex"
"Insert constants into source code" t)
(define-key global-map "\C-cm" 'mu2tex)
USAGE
-----
To use this package, just type the name of a molecule or a unit
expression into the buffer. The expression must not contain
spaces. Then, with the cursor right after the types expression,
press the key to which mu2tex has been assigned.
Example Conversion result
----------------- -----------------
H2O H$_2$O
C18O C$^18$O
H2C17O H$_2$C$^17$O
m2s-2 m$^2$ s$^{-2}
2.74e-13 $2.74\times10^{-13}$
A dot can be used as a separator where one is needed:
H2.18O H$_2${}$^{18}$O
erg.cm-2s-1 erg cm$^{-2}$ s$^-1$
2.7e-2Jy.arcsec-2 $2.7\times10^{-2}$ Jy arcsec$^-2$
The dot can also be used to force interpretation of a number as either
isotope number or stoichiometric number. By default, mu2tex assumes
that numbers smaller than 10 are stoichiometric coefficients that need
to be turned into a subscript, and numbers 10 and larger are isotope
numbers that need to become superscripts. In the cases where this
heuristics fails, you can use the dot to force assignment to left or
right and in this way break the ambiguity:
H.6Li H{}$^{6}$Li
C18.H C$_{18}$H
Inside (La)TeX math mode, a different conversion is needed. In this
case, the resulting string should be put into a \mathrm macro, to get
the correct fonts, and no $ characters are needed to switch mode.
If you have the texmathp.el package, recognition of the environment will
be automatic. If you don't, you can use the command `mu2tex-math' to
get the math-mode version of the conversion.
CUSTOMIZATION
-------------
You can use the following variables to customize this mode:
mu2tex-use-mathrm
Do you prefer $\mathrm{H_2O}$ or H$_2$O in math mode?
mu2tex-use-texmathp
Should texmathp.el be used to determine math or text mode?
mu2tex-isotope-limit
Numbers larger than or equal to this are interpreted as isotope numbers.
mu2tex-molecule-exceptions
Special molecules for which the automatic converter fails.
mu2tex-units
Units that can be used to distinguish a unit expression from a molecule.
mu2tex-space-string
What should be inserted as separator between different units?
Heuristics, and fixes where needed
----------------------------------
- Mu2tex uses a heuristic method to decide if the expression to convert
is a unit expression or a molecule name. This method is based on a
built-in list of unit names that never show up in molecule names.
This list (stored in the constant `mu2tex-default-units') may or may not
work for you. See the variable `mu2tex-units'. Also, an initial
floating point number containing a decimal point or exponent does force
unit interpretation. You can call `mu2tex' with single C-u prefix to
force interpretation as a molecule name. A double prefix C-c C-u enforces
interpretation as a unit expression. Finally, you can also use the
special commands `mu2tex-unit' and `mu2tex-molecule'.
- If you have specific molecules that you need often and that defy the
heuristics for isotope numbers and stoichiometric coefficients, you
can simply hard-code the conversion for these molecules using the
variable `mu2tex-molecule-exceptions'. For example:
(setq mu2tex-exceptions
'((\"HC18H\" . \"HC$_{18}$H\")
(\"H6Li\" . \"H$^{6}$Li\")))
AUTHOR
------
Carsten Dominik <[email protected]>
ACKNOWLEDGEMENTS
----------------
Cecilia Ceccarelli made me write papers about chemistry, and in this way
prompted this program. She also had the idea for the unit formatter.
CHANGES
-------
Version 1.0
- Initial release
Version 1.1
- Add formatting of numbers
Version 1.2
- Allow point to force isotope/stoichiometric assignment like C18.H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;