LaTeX/Chemia
Chemfig jest pakietem umożliwiającym rysowanie dwuwymiarowych struktur chemicznych. Jest alternatywą dla pakietu ochem. Zaletą pakietu chemfig jest to, iż korzysta on pakietu tikz do rysowania grafiki, a nie języka Perl jak pakiet ochem. Aby użyć chemfig w sowim dokumencie, należy w preambule załadować pakiet:
\usepackage{chemfig}
Podstawy
edytujPodstawową komendą używaną w tym pakiecie jest \chemfig{}:
\chemfig{<atom1><bond type>[<angle>,<coeff>,<tikz code>]<atom2>}
<angle> jest określeniem kąta pomiędzy atomami. Występują trzy typy kątów: absolute, relative, oraz predefined. Kąty typuabsolute pozwalają na wyrysowanie wiązania pod konkretnym kątem (od 0 do 360°) i reprezentowane są przez komendę [:<absolute angle>]. Kąty typu relative określa się komendą [::<relative angle>], które wstawia linię o podanym nachyleniu w stosunku do poprzedniego wiązania. Ostatnim typem jest predefined, który określają liczby całkowite od 1-7 określające kąty co 45°. Poniżej przedstawiono przykłądowy kod tego typu kątów.
<bond type> określa rodzaj wiązania pomiędzy <atom1> a <atom2>. Występuje dziewięć typów wiązań:
\chemfig{A-B}\\
\chemfig{A=B}\\
\chemfig{A~B}\\
\chemfig{A>B}\\
\chemfig{A<B}\\
\chemfig{A>:B}\\
\chemfig{A<:B}\\
\chemfig{A>|B}\\
\chemfig{A<|B}\\
|
<coeff> określa czynnik, zwiększający długość wiązania.
<tikz code> wprowadza dodatkowe opcje dotyczące koloru lub stylu wiązania.
Wzór strukturalny metanu można otrzymać w następujący sposób:
\chemfig{C(-[:0]H)(-[:90]H)(-[:180]H)(-[:270]H)}
|
Budowa bardziej skomplikowanych związków polega na zagnieżdżaniu.
Wzory szkieletowe
edytujWzory szkieletowe można otrzymać w następujący sposób:
\chemfig{-[:30]-[:-30]-[:30]}
|
|
\chemfig{-[:30]=[:-30]-[:30]}
|
Pierścienie
edytujPierścienie powstają przez użycie składni<atom>*<n>(kod), gdzie "n" jest liczbą boków pierścienia, a "kod" oznacza poszczególne atomy w pierścieniu wraz z wiązaniami.
\chemfig{A*6(-B-C-D-E-F-)}
|
|
\chemfig{A*5(-B-C-D-E-)}
|
|
\chemfig{*6(=-=-=-)}
|
|
\chemfig{**5(------)}
|
Wzór Lewisa
edytujWzory Lewisa można utworzyć przez użycie komendy:
\lewis{<electron angle><electron>,<atom>}
wewnątrz komendy \chemfig{}.
Jony
edytujJako przykład rozpatrzmy jon octanowy:
\chemfig{-(-[1]O^{-})=[7]O}
|
Komendy chemfig opierają się na matematyce, dlatego znaki jonów muszą być dodawane w nawiasach.
Znak jonu może być także wpisany w okrąg przez użycie komend \oplus i \ominus:
\chemfig{-(-[1]O^{\ominus})=[7]O}
|
Alternatywnym rozwiązaniem jest wstawienie znaku jonu nad atom przez użycie \chemabove{}{}:
\chemfig{-\chemabove{N}{\scriptstyle\oplus}(=[1]O)-[7]O^{\ominus}}
|
Struktury rezonansowe i ładunki formalne
edytujStruktury rezonansowe wymagają kilku komend matematycznych:
% zobacz rozdział "Matematyka zaawansowana" aby zrozumieć użycie \left i \right
% w preambule dodaj:
% \usepackage{mathtools} % \Longleftrightarrow
$\left\{\chemfig{O-N(=[:60]O)-[:300]O}\right\}
\Longleftrightarrow
\left\{\chemfig{O=N(-[:60]O)-[:300]O}\right\}
\Longleftrightarrow
\left\{\chemfig{O-N(-[:60]O)=[:300]O}\right\}$
Reakcje chemiczne
edytujReakcje chemiczne można tworzyć w następujący sposób:
\chemrel[<arg1>][<arg2>]{<arrow code>}
|
\chemsign+ % produces a +
|
W komendzie \chemrel{}, <arg1> i <arg2> oznaczają tekst nad i pod strzałką reakcji.
Cztery typy strzałek reakcji chemicznych przedstawiono poniżej.
A\chemrel{->}B\par
A\chemrel{<-}B\par
A\chemrel{<->}B\par
A\chemrel{<>}B
|
Nazewnictwo związków chemicznych
edytujZwiązki chemiczne można nazywać używając komendy:
\chemname[<dim>]{\chemfig{<code of the molecule>}}{<nazwa>}
<dim> określa wolną przestrzeń między dołem obrazka a górną krawędzią nazwy związku (<nazwa>). Standardowo wysokość ta wynosi 1.5ex.
<name> określa nazwę, jaką użytkownik chce nadać związkowi.
W reakcji powyżej nazwy związków chemicznych są umieszczone o 1.5ex poniżej pierwszego związku chemicznego. Dzieje się tak, ponieważ kwas karboksylowy posiada dolną krawędź najniżej z wszystkich związków. Inaczej reakcja będzie wyglądać, jeśli zamienimy kolejność i jako pierwszy umieścimy alkohol.
\chemname{\chemfig{R’OH}}{Alcohol}
\chemsign{+}
\chemname{\chemfig{R-C(-[:-30]OH)=[:30]O}}{Carboxylic acid}
\chemrel{->}
\chemname{\chemfig{R-C(-[:-30]OR’)=[:30]O}}{Ester}
\chemsign{+}
\chemname{\chemfig{H_2O}}{Water}
Zmiany te mogą być usunięte poprzez zdefiniowanie związku, który ma dolną krawędź najniżej, poprzez użycie komendy \chemnameinit{} przed komendę dotyczącą danego związku. Przykład poniżej.
\chemnameinit{\chemfig{R-C(-[:-30]OH)=[:30]O}}
\chemname{\chemfig{R’OH}}{Alcohol}
\chemsign{+}
\chemname{\chemfig{R-C(-[:-30]OH)=[:30]O}}{Carboxylic acid}
\chemrel{->}
\chemname{\chemfig{R-C(-[:-30]OR’)=[:30]O}}{Ester}
\chemsign{+}
\chemname{\chemfig{H_2O}}{Water}
\chemnameinit{}
Dodatkowo wpisanie \\w nazwie spowoduje złamanie linii, pozwalając nazwie zająć więcej niż jedną linię.
Zaawansowana grafika chemiczna
edytujDla bardziej skomplikowanych struktur chemicznych, zaleca się skorzystanie z instrukcji chemfig, gdzie przedstawiono szczegółowy opis pakietu. (Link w języku angielskim)