﻿<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://scholarlywiki.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AChem2</id>
	<title>Module:Chem2 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://scholarlywiki.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AChem2"/>
	<link rel="alternate" type="text/html" href="https://scholarlywiki.org/index.php?title=Module:Chem2&amp;action=history"/>
	<updated>2026-05-15T13:46:32Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://scholarlywiki.org/index.php?title=Module:Chem2&amp;diff=2398&amp;oldid=prev</id>
		<title>WikiHarold at 00:24, 26 September 2025</title>
		<link rel="alternate" type="text/html" href="https://scholarlywiki.org/index.php?title=Module:Chem2&amp;diff=2398&amp;oldid=prev"/>
		<updated>2025-09-26T00:24:44Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
local p = {} -- module&amp;#039;s table&lt;br /&gt;
&lt;br /&gt;
local am = {}  -- Elements with wiki links&lt;br /&gt;
am.H=&amp;quot;[[Chemistry:Hydrogen|H]]&amp;quot;;am.He=&amp;quot;[[Chemistry:Helium|He]]&amp;quot;;&lt;br /&gt;
am.Li=&amp;quot;[[Chemistry:Lithium|Li]]&amp;quot;;am.Be=&amp;quot;[[Chemistry:Beryllium|Be]]&amp;quot;;am.B=&amp;quot;[[Chemistry:Boron|B]]&amp;quot;;am.C=&amp;quot;[[Chemistry:Carbon|C]]&amp;quot;;am.N=&amp;quot;[[Chemistry:Nitrogen|N]]&amp;quot;;am.O=&amp;quot;[[Chemistry:Oxygen|O]]&amp;quot;;am.F=&amp;quot;[[Chemistry:Fluorine|F]]&amp;quot;;am.Ne=&amp;quot;[[Chemistry:Neon|Ne]]&amp;quot;;&lt;br /&gt;
am.Na=&amp;quot;[[Chemistry:Sodium|Na]]&amp;quot;;am.Mg=&amp;quot;[[Chemistry:Magnesium|Mg]]&amp;quot;;am.Al=&amp;quot;[[Chemistry:Aluminium |Al]]&amp;quot;;am.Si=&amp;quot;[[Chemistry:Silicon|Si]]&amp;quot;;am.P=&amp;quot;[[Chemistry:Phosphorus|P]]&amp;quot;;am.S=&amp;quot;[[Chemistry:Sulfur|S]]&amp;quot;;am.Cl=&amp;quot;[[Chemistry:Chlorine|Cl]]&amp;quot;;am.Ar=&amp;quot;[[Chemistry:Argon|Ar]]&amp;quot;;&lt;br /&gt;
am.K=&amp;quot;[[Chemistry:Potassium|K]]&amp;quot;;am.Ca=&amp;quot;[[Chemistry:Calcium|Ca]]&amp;quot;;am.Sc=&amp;quot;[[Chemistry:Scandium|Sc]]&amp;quot;;am.Ti=&amp;quot;[[Chemistry:Titanium|Ti]]&amp;quot;;am.V=&amp;quot;[[Chemistry:Vanadium|V]]&amp;quot;;am.Cr=&amp;quot;[[Chemistry:Chromium|Cr]]&amp;quot;;am.Mn=&amp;quot;[[Chemistry:Manganese|Mn]]&amp;quot;;am.Fe=&amp;quot;[[Chemistry:Iron|Fe]]&amp;quot;;am.Co=&amp;quot;[[Chemistry:Cobalt|Co]]&amp;quot;;am.Ni=&amp;quot;[[Chemistry:Nickel|Ni]]&amp;quot;;am.Cu=&amp;quot;[[Chemistry:Copper|Cu]]&amp;quot;;am.Zn=&amp;quot;[[Chemistry:Zinc|Zn]]&amp;quot;;am.Ga=&amp;quot;[[Chemistry:Gallium|Ga]]&amp;quot;;am.Ge=&amp;quot;[[Chemistry:ermanium|Ge]]&amp;quot;;am.As=&amp;quot;[[Chemistry:Arsenic|As]]&amp;quot;;am.Se=&amp;quot;[[Chemistry:Selenium|Se]]&amp;quot;;am.Br=&amp;quot;[[Chemistry:Bromine|Br]]&amp;quot;;am.Kr=&amp;quot;[[Chemistry:Krypton|Kr]]&amp;quot;;am.Rb=&amp;quot;[[Chemistry:Rubidium|Rb]]&amp;quot;;&lt;br /&gt;
am.Sr=&amp;quot;[[Chemistry:Strontium|Sr]]&amp;quot;;am.Y=&amp;quot;[[Chemistry:Yttrium|Y]]&amp;quot;;am.Zr=&amp;quot;[[Chemistry:Zirconium|Zr]]&amp;quot;;am.Nb=&amp;quot;[[Chemistry:Niobium|Nb]]&amp;quot;;am.Mo=&amp;quot;[[Chemistry:Molybdenum|Mo]]&amp;quot;;am.Tc=&amp;quot;[[Chemistry:Technetium|Tc]]&amp;quot;;am.Ru=&amp;quot;[[Chemistry:Ruthenium|Ru]]&amp;quot;;am.Rh=&amp;quot;[[Chemistry:Rhodium|Rh]]&amp;quot;;am.Pd=&amp;quot;[[Chemistry:Palladium|Pd]]&amp;quot;;am.Ag=&amp;quot;[[Chemistry:Silver|Ag]]&amp;quot;;am.Cd=&amp;quot;[[Chemistry:Cadmium|Cd]]&amp;quot;;am.In=&amp;quot;[[Chemistry:Indium|In]]&amp;quot;;am.Sn=&amp;quot;[[Chemistry:Tin|Sn]]&amp;quot;;am.Sb=&amp;quot;[[Chemistry:Antimony|Sb]]&amp;quot;;am.Te=&amp;quot;[[Chemistry:Tellurium|Te]]&amp;quot;;am.I=&amp;quot;[[Chemistry:Iodine|I]]&amp;quot;;am.Xe=&amp;quot;[[Chemistry:Xenon|Xe]]&amp;quot;;&lt;br /&gt;
am.Cs=&amp;quot;[[Chemistry:Caesium|Cs]]&amp;quot;;am.Ba=&amp;quot;[[Chemistry:Barium|Ba]]&amp;quot;;am.La=&amp;quot;[[Chemistry:Lanthanum|La]]&amp;quot;;am.Ce=&amp;quot;[[Chemistry:Cerium|Ce]]&amp;quot;;am.Pr=&amp;quot;[[Chemistry:Praseodymium|Pr]]&amp;quot;;am.Nd=&amp;quot;[[Chemistry:Neodymium|Nd]]&amp;quot;;am.Pm=&amp;quot;[[Chemistry:Promethium|Pm]]&amp;quot;;am.Sm=&amp;quot;[[Chemistry:Samarium|Sm]]&amp;quot;;am.Eu=&amp;quot;[[Chemistry:Europium|Eu]]&amp;quot;;am.Gd=&amp;quot;[[Chemistry:Gadolinium|Gd]]&amp;quot;;am.Tb=&amp;quot;[[Chemistry:Terbium|Tb]]&amp;quot;;am.Dy=&amp;quot;[[Chemistry:Dysprosium|Dy]]&amp;quot;;am.Ho=&amp;quot;[[Chemistry:Holmium|Ho]]&amp;quot;;am.Er=&amp;quot;[[Chemistry:Erbium|Er]]&amp;quot;;am.Tm=&amp;quot;[[Chemistry:Thulium|Tm]]&amp;quot;;am.Yb=&amp;quot;[[Chemistry:Ytterbium|Yb]]&amp;quot;;am.Lu=&amp;quot;[[Chemistry:Lutetium|Lu]]&amp;quot;;am.Hf=&amp;quot;[[Chemistry:Hafnium|Hf]]&amp;quot;;am.Ta=&amp;quot;[[Chemistry:Tantalum|Ta]]&amp;quot;;am.W=&amp;quot;[[Chemistry:Tungsten|W]]&amp;quot;;am.Re=&amp;quot;[[Chemistry:Rhenium|Re]]&amp;quot;;am.Os=&amp;quot;[[Chemistry:Osmium|Os]]&amp;quot;;am.Ir=&amp;quot;[[Chemistry:Iridium|Ir]]&amp;quot;;am.Pt=&amp;quot;[[Chemistry:Platinum|Pt]]&amp;quot;;am.Au=&amp;quot;[[Chemistry:Gold|Au]]&amp;quot;;am.Hg=&amp;quot;[[Chemistry:Mercury (element)|Hg]]&amp;quot;;am.Tl=&amp;quot;[[Chemistry:Thallium|Tl]]&amp;quot;;am.Pb=&amp;quot;[[Chemistry:Lead|Pb]]&amp;quot;;am.Bi=&amp;quot;[[Chemistry:Bismuth|Bi]]&amp;quot;;am.Po=&amp;quot;[[Chemistry:Polonium|Po]]&amp;quot;;am.At=&amp;quot;[[Chemistry:Astatine|At]]&amp;quot;;am.Rn=&amp;quot;[[Chemistry:Radon|Rn]]&amp;quot;;&lt;br /&gt;
am.Fr=&amp;quot;[[Chemistry:Francium|Fr]]&amp;quot;;am.Ra=&amp;quot;[[Chemistry:Radium|Ra]]&amp;quot;;am.Ac=&amp;quot;[[Chemistry:Actinium|Ac]]&amp;quot;;am.Th=&amp;quot;[[Chemistry:Thorium|Th]]&amp;quot;;am.Pa=&amp;quot;[[Chemistry:Protactinium|Pa]]&amp;quot;;am.U=&amp;quot;[[Chemistry:Uranium|U]]&amp;quot;;am.Np=&amp;quot;[[Chemistry:Neptunium|Np]]&amp;quot;;am.Pu=&amp;quot;[[Chemistry:Plutonium|Pu]]&amp;quot;;am.Am=&amp;quot;[[Chemistry:Americium|Am]]&amp;quot;;am.Cm=&amp;quot;[[Chemistry:Curium|Cm]]&amp;quot;;am.Bk=&amp;quot;[[Chemistry:Berkelium|Bk]]&amp;quot;;am.Cf=&amp;quot;[[Chemistry:Californium|Cf]]&amp;quot;;am.Es=&amp;quot;[[Chemistry:Einsteinium|Es]]&amp;quot;;am.Fm=&amp;quot;[[Chemistry:Fermium|Fm]]&amp;quot;;am.Md=&amp;quot;[[Chemistry:Mendelevium|Md]]&amp;quot;;am.No=&amp;quot;[[Chemistry:Nobelium|No]]&amp;quot;;am.Lr=&amp;quot;[[Chemistry:Lawrencium|Lr]]&amp;quot;;am.Rf=&amp;quot;[[Chemistry:Rutherfordium|Rf]]&amp;quot;;am.Db=&amp;quot;[[Chemistry:Dubnium|Db]]&amp;quot;;am.Sg=&amp;quot;[[Chemistry:Seaborgium|Sg]]&amp;quot;;am.Bh=&amp;quot;[[Chemistry:Bohrium|Bh]]&amp;quot;;am.Hs=&amp;quot;[[Chemistry:Hassium|Hs]]&amp;quot;;am.Mt=&amp;quot;[[Chemistry:Meitnerium|Mt]]&amp;quot;;am.Ds=&amp;quot;[[Chemistry:Darmstadtium|Ds]]&amp;quot;;am.Rg=&amp;quot;[[Roentgenium|Rg]]&amp;quot;;am.Cp=&amp;quot;[[Chemistry:Copernicium|Cp]]&amp;quot;;am.Nh=&amp;quot;[[Chemistry:Nihonium|Nh]]&amp;quot;;am.Fl=&amp;quot;[[Chemistry:Flerovium|Fl]]&amp;quot;;am.Mc=&amp;quot;[[Chemistry:Moscovium|Mc]]&amp;quot;;am.Lv=&amp;quot;[[Chemistry:Livermorium|Lv]]&amp;quot;;am.Ts=&amp;quot;[[Chemistry:Tennessine|Ts]]&amp;quot;;am.Og=&amp;quot;[[Chemistry:Oganesson|Og]]&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
local T_ELEM = 0         -- token types&lt;br /&gt;
local T_NUM = 1          -- number&lt;br /&gt;
local T_OPEN = 2         -- open &amp;#039;(&amp;#039;&lt;br /&gt;
local T_CLOSE = 3        -- close &amp;#039;)&amp;#039;&lt;br /&gt;
local T_PM_CHARGE = 4    -- + or –&lt;br /&gt;
local T_WATER = 6        -- .xH2O x number&lt;br /&gt;
local T_CRYSTAL = 9      -- .x&lt;br /&gt;
local T_CHARGE = 8       -- charge (x+), (x-)&lt;br /&gt;
local T_SUF_CHARGE = 10  -- suffix and charge e.g. 2+ from H2+&lt;br /&gt;
local T_SUF_CHARGE2 = 12 -- suffix and (charge) e.g. 2(2+) from He2(2+)&lt;br /&gt;
local T_SPECIAL = 14     -- starting with \ e.g. \d for double bond (=)&lt;br /&gt;
local T_SPECIAL2 = 16    -- starting with \y{x} e.g. \i{12} for isotope with mass number 12&lt;br /&gt;
local T_ARROW_R = 17     -- match: -&amp;gt;&lt;br /&gt;
local T_ARROW_EQ = 18    -- match: &amp;lt;-&amp;gt;&lt;br /&gt;
local T_UNDERSCORE = 19  -- _{ ... }&lt;br /&gt;
local T_CARET = 20       -- ^{ ... }&lt;br /&gt;
local T_NOCHANGE = 30        -- Anything else like ☃&lt;br /&gt;
&lt;br /&gt;
function su(up, down) -- like template:su&lt;br /&gt;
  if (down == &amp;quot;&amp;quot;) then &lt;br /&gt;
    return &amp;quot;&amp;lt;span style=\&amp;quot;display:inline-block; margin-bottom:-0.3em; vertical-align:0.8em; line-height:1.2em; font-size:70%; text-align:left;\&amp;quot;&amp;gt;&amp;quot; .. up .. &amp;quot;&amp;lt;br /&amp;gt;&amp;lt;/span&amp;gt;&amp;quot;;&lt;br /&gt;
  else&lt;br /&gt;
    return &amp;quot;&amp;lt;span style=\&amp;quot;display:inline-block; margin-bottom:-0.3em; vertical-align:-0.4em; line-height:1.2em; font-size:70%; text-align:left;\&amp;quot;&amp;gt;&amp;quot; .. up .. &amp;quot;&amp;lt;br /&amp;gt;&amp;quot; .. down .. &amp;quot;&amp;lt;/span&amp;gt;&amp;quot;;&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DotIt()&lt;br /&gt;
  return &amp;#039;&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-weight:bold;&amp;quot;&amp;gt;&amp;amp;middot;&amp;lt;/span&amp;gt;&amp;amp;#32;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function item(f) -- (iterator) returns one token (type, value) at a time from the formula &amp;#039;f&amp;#039;&lt;br /&gt;
   local i = 1&lt;br /&gt;
   local first = &amp;quot;true&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
   return function ()&lt;br /&gt;
	local t, x = nil, nil&lt;br /&gt;
&lt;br /&gt;
        if (first == &amp;quot;true&amp;quot; and f:match(&amp;#039;^[0-9]&amp;#039;, i)) then &lt;br /&gt;
                 x = f:match(&amp;#039;^[%d.]+&amp;#039;, i); t = T_NOCHANGE; i = i + x:len();   -- matching coefficient (need a space first)&lt;br /&gt;
&lt;br /&gt;
        elseif i &amp;lt;= f:len() then&lt;br /&gt;
                              x = f:match(&amp;#039;^%s+[%d.]+&amp;#039;, i); t = T_NOCHANGE;  -- matching coefficient (need a space first)&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^%s[+]&amp;#039;, i); t = T_NOCHANGE; end       -- matching + (H2O + H2O)&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^%&amp;amp;%#[%w%d]+%;&amp;#039;, i); t = T_NOCHANGE; end       -- &amp;amp;#...;&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^%&amp;lt;%-%&amp;gt;&amp;#039;, i); t = T_ARROW_EQ; end       -- matching &amp;lt;-&amp;gt;&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^%-%&amp;gt;&amp;#039;, i); t = T_ARROW_R; end       -- matching -&amp;gt;&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^%u%l*&amp;#039;, i); t = T_ELEM; end        -- matching symbols like Aaaaa&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^%d+[+-]&amp;#039;, i); t = T_SUF_CHARGE; end        -- matching x+, x-&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^%d+%(%d*[+-]%)&amp;#039;, i); t = T_SUF_CHARGE2; end        -- matching x(y+/-), x(+/-)&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^%(%d*[+-]%)&amp;#039;, i); t = T_CHARGE; end        -- matching (x+) (xx+), (x-) (xx-)&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^[%d.]+&amp;#039;, i); t = T_NUM; end        -- matching number&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^[(|{|%[]&amp;#039;, i); t = T_OPEN; end     -- matching ({[&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^[)|}|%]]&amp;#039;, i); t = T_CLOSE; end           -- matching )}]&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^[+-]&amp;#039;, i); t = T_PM_CHARGE; end        -- matching + or -&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^%*[%d.]*H2O&amp;#039;, i); t = T_WATER; end -- Crystal water&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^%*[%d.]*&amp;#039;, i); t = T_CRYSTAL; end -- Crystal&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^[\\].{%d+}&amp;#039;, i); t = T_SPECIAL2; end -- \y{x}&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^[\\].&amp;#039;, i); t = T_SPECIAL; end -- \x&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^_{[^}]*}&amp;#039;, i); t = T_UNDERSCORE; end -- _{...}&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^\^{[^}]*}&amp;#039;, i); t = T_CARET; end -- ^{...}&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^.&amp;#039;, i); t = T_NOCHANGE; end  --the rest - one by one&lt;br /&gt;
		if x then i = i + x:len(); else i = i + 999; error(&amp;quot;Invalid character in formula!!!!!!! : &amp;quot;..f) end&lt;br /&gt;
	end&lt;br /&gt;
        first = &amp;quot;false&amp;quot;&lt;br /&gt;
	return t, x&lt;br /&gt;
	end&lt;br /&gt;
   end&lt;br /&gt;
&lt;br /&gt;
function p._chem(args)&lt;br /&gt;
   &lt;br /&gt;
local f = args[1] or &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
   f = string.gsub(f, &amp;quot;–&amp;quot;, &amp;quot;-&amp;quot;)  -- replace – with - (hyphen not ndash)&lt;br /&gt;
   f = string.gsub(f, &amp;quot;−&amp;quot;, &amp;quot;-&amp;quot;)  -- replace – with - (hyphen not minus sign)&lt;br /&gt;
&lt;br /&gt;
   local sumO = 0&lt;br /&gt;
   local formula = &amp;#039;&amp;#039;&lt;br /&gt;
   local t, x&lt;br /&gt;
&lt;br /&gt;
   local link = args[&amp;#039;link&amp;#039;] or &amp;quot;&amp;quot;&lt;br /&gt;
   local auto = args[&amp;#039;auto&amp;#039;] or &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
   if not (link == &amp;#039;&amp;#039;) then formula = formula .. &amp;quot;[[&amp;quot; .. link .. &amp;quot;|&amp;quot;; end   -- wikilink start [[link|&lt;br /&gt;
 &lt;br /&gt;
   for t, x in item(f) do &lt;br /&gt;
      if     t == T_ELEM then if (auto == &amp;#039;&amp;#039;) then formula = formula .. x elseif am[x] then formula = formula .. am[x]; am[x] = x else formula = formula .. x end &lt;br /&gt;
      elseif t == T_COEFFICIENT then formula = formula .. x&lt;br /&gt;
      elseif t == T_NUM   then formula = formula .. su(&amp;quot;&amp;quot;, x);&lt;br /&gt;
      elseif t == T_OPEN  then formula = formula .. x; sumO = sumO + 1;        -- ( {&lt;br /&gt;
      elseif t == T_CLOSE then formula = formula .. x; sumO = sumO -1;         -- ) }&lt;br /&gt;
      elseif t == T_PM_CHARGE    then formula = formula .. su(string.gsub(x, &amp;quot;-&amp;quot;, &amp;quot;−&amp;quot;), &amp;quot;&amp;quot;);&lt;br /&gt;
      elseif t == T_SUF_CHARGE then &lt;br /&gt;
           formula = formula .. su(string.gsub(string.match(x, &amp;quot;[+-]&amp;quot;), &amp;quot;-&amp;quot;, &amp;quot;−&amp;quot;), string.match(x, &amp;quot;%d+&amp;quot;), &amp;quot;&amp;quot;);&lt;br /&gt;
      elseif t == T_SUF_CHARGE2 then &lt;br /&gt;
          formula = formula .. su(string.sub(string.gsub(string.match(x, &amp;quot;%(%d*[+-]&amp;quot;), &amp;quot;-&amp;quot;, &amp;quot;−&amp;quot;), 2, -1), string.match(x, &amp;quot;%d+&amp;quot;))&lt;br /&gt;
      elseif t == T_CHARGE then formula = formula .. &amp;quot;&amp;lt;sup&amp;gt;&amp;quot;; if string.match(x, &amp;quot;%d+&amp;quot;) then formula = formula .. string.match(x, &amp;quot;%d+&amp;quot;); end formula = formula .. string.gsub(string.match(x, &amp;quot;[%+-]&amp;quot;), &amp;quot;-&amp;quot;, &amp;quot;−&amp;quot;) .. &amp;quot;&amp;lt;/sup&amp;gt;&amp;quot;;  -- can not concatenat a nil value from string.match(x, &amp;quot;%d+&amp;quot;);&lt;br /&gt;
      elseif t == T_CRYSTAL then formula = formula .. DotIt() .. string.gsub( x, &amp;quot;*&amp;quot;, &amp;#039; &amp;#039;, 1 );&lt;br /&gt;
      elseif t == T_SPECIAL then&lt;br /&gt;
          parameter = string.sub(x, 2, 2) -- x fra \x  &lt;br /&gt;
          if       parameter == &amp;quot;s&amp;quot; then formula = formula .. &amp;quot;–&amp;quot;   -- single bond&lt;br /&gt;
            elseif parameter == &amp;quot;d&amp;quot; then formula = formula .. &amp;quot;=&amp;quot;   -- double bond&lt;br /&gt;
            elseif parameter == &amp;quot;t&amp;quot; then formula = formula .. &amp;quot;≡&amp;quot;   -- tripple bond&lt;br /&gt;
            elseif parameter == &amp;quot;q&amp;quot; then formula = formula .. &amp;quot;≣&amp;quot;   -- Quadruple bond&lt;br /&gt;
            elseif parameter == &amp;quot;h&amp;quot; then formula = formula .. &amp;quot;η&amp;quot;   -- η, hapticity&lt;br /&gt;
            elseif parameter == &amp;quot;*&amp;quot; then formula = formula .. &amp;quot;*&amp;quot;   -- *, normal *&lt;br /&gt;
            elseif parameter == &amp;quot;-&amp;quot; then formula = formula .. &amp;quot;-&amp;quot;   -- -&lt;br /&gt;
            elseif parameter == &amp;quot;\\&amp;quot; then formula = formula .. &amp;quot;\\&amp;quot;   -- \&lt;br /&gt;
            elseif parameter == &amp;quot;\&amp;#039;&amp;quot; then formula = formula .. &amp;quot;&amp;amp;#39;&amp;quot;   -- html-code for &amp;#039;&lt;br /&gt;
          end&lt;br /&gt;
      elseif t == T_SPECIAL2 then  -- \y{x}&lt;br /&gt;
         parameter = string.sub(x, 2, 2) -- y fra \y{x} &lt;br /&gt;
          if parameter  == &amp;quot;h&amp;quot; then --[[Hapticity]]&lt;br /&gt;
             if (auto == &amp;#039;&amp;#039;) then formula = formula .. &amp;quot;η&amp;lt;sup&amp;gt;&amp;quot; .. string.match(x, &amp;#039;%d+&amp;#039;) .. &amp;quot;&amp;lt;/sup&amp;gt;−&amp;quot; &lt;br /&gt;
               else&lt;br /&gt;
             formula = formula .. &amp;quot;[[Hapticity|η&amp;lt;sup&amp;gt;&amp;quot; .. string.match(x, &amp;#039;%d+&amp;#039;) .. &amp;quot;&amp;lt;/sup&amp;gt;]]−&amp;quot; &lt;br /&gt;
             end&lt;br /&gt;
          elseif parameter == &amp;quot;m&amp;quot; then formula = formula .. &amp;quot;μ&amp;lt;sup&amp;gt;&amp;quot; .. string.match(x, &amp;#039;%d+&amp;#039;) .. &amp;quot;&amp;lt;/sup&amp;gt;−&amp;quot; -- mu ([[bridging ligand]])&lt;br /&gt;
          end&lt;br /&gt;
      elseif t == T_WATER then &lt;br /&gt;
        if string.match(x, &amp;quot;^%*[%d.]&amp;quot;) then &lt;br /&gt;
            formula = formula .. DotIt() .. string.match(x, &amp;quot;%f[%.%d]%d*%.?%d*%f[^%.%d%]]&amp;quot;) .. &amp;quot;H&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;O&amp;quot;;&lt;br /&gt;
        else&lt;br /&gt;
          formula = formula .. DotIt() .. &amp;quot;H&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;O&amp;quot;;&lt;br /&gt;
        end  &lt;br /&gt;
      elseif t == T_UNDERSCORE  then formula = formula .. su(&amp;quot;&amp;quot;, string.sub(x,3,-2)) -- x contains _{string}&lt;br /&gt;
      elseif t == T_CARET then formula = formula .. su(string.sub(x,3,-2), &amp;quot;&amp;quot;) -- x contains ^{string}&lt;br /&gt;
      elseif t == T_ARROW_R then formula = formula .. &amp;quot; → &amp;quot;&lt;br /&gt;
      elseif t == T_ARROW_EQ then formula = formula .. &amp;quot; ⇌ &amp;quot;&lt;br /&gt;
      elseif t == T_NOCHANGE  then formula = formula .. x;  -- The rest - everything which isn&amp;#039;t captured by the regular expresions. E.g. wikilinks and pipes&lt;br /&gt;
     &lt;br /&gt;
      else error(&amp;#039;unreachable - ???&amp;#039;) end -- in fact, unreachable&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
   if not (link == nil or link == &amp;#039;&amp;#039;) then formula = formula .. &amp;quot;]]&amp;quot;; end   -- wikilink closing ]]&lt;br /&gt;
&lt;br /&gt;
   return &amp;#039;&amp;lt;span class=&amp;quot;chemf nowrap&amp;quot;&amp;gt;&amp;#039; .. formula .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039; &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.chem(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	return p._chem(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>WikiHarold</name></author>
	</entry>
</feed>