Система описания химических формул для WEB.

Линейные формулы

Правила и примеры описания линейных химических формул и уравнений реакций.

Быстрый старт

Начнём с простого. Описание H2O превращается в H2O. Комментарии излишни...

Посмотрим более интересные варианты:

H3BO3 + 3C2H5OH = (C2H5O)3B + 3H2O H3BO3 + 3C2H5OH = (C2H5O)3B + 3H2O
H^+ + HCO3^- = CO2"|^" + H2O H^+ + HCO3^- = CO2"|^" + H2O
CaCO3 "1000^oC"--> CaO + CO2"|^" CaCO3 "1000^oC"--> CaO + CO2"|^"
4Fe^2+ + 3[Fe(CN)6]^3- -> Fe(iii)4[Fe(ii)(CN)6]3"|v" 4Fe^2+ + 3[Fe(CN)6]^3- -> Fe(iii)4[Fe(ii)(CN)6]3"|v"
[Fe(H2O)6]3^+ + H4{EDTA} <-> [Fe({EDTA})]^- + 6H2O + 4H^+ [Fe(H2O)6]3^+ + H4{EDTA} <-> [Fe({EDTA})]^- + 6H2O + 4H^+
NH2-CH2-COOH <=> N(+)H3-CH2-COO(-) NH2-CH2-COOH <=> N(+)H3-CH2-COO(-)
HC%CH + Cl2 -> ClCH=CHCl HC%CH + Cl2 -> ClCH=CHCl
Как видно, при помощи достаточно простых и интуитивно понятных описаний можно получать красивые формулы.

Правила текстового описания формул

Рассмотрим возможности подробнее.

    Общая структура формулы

    Система распознавания формул может обрабатывать не только описания одного вещества, но и целые уравнения. Формально, формула рассматривается как чередование реагентов и операций. Реагенты и операции отделяются пробелами. Реагент - описание одного вещества (иона, радикала,...).

    Операции

    Большая часть операций служит для разделения левой и правой части уравнения. Операции + и * разделяют реагенты. Текстовые описания операций записываются простыми символами, легко доступными с клавиатуры. Но затем они транслируются в специальные символы, соответствующие общепринятым в химии. Эти правила не являются строгими, но задумка была следующая:
    Реакция с соблюдением стехиометрического соотношения = =
    Используется для обозначений прямой реакции --> -> → ® --> -> → ®
    Обозначение реакции, протекающей в обоих направлениях <-> ↔ <-> ↔
    Обозначение химического равновесия <=> <=>
    Может возникнуть резонный вопрос, почему ® соответствует стрелке? Дело в том, что на некоторых сайтах для вывода стрелки используется шрифт Symbol. Если такую стрелку выделить и скопировать в редактор, то она превратится в ®, но это не беда, т.к. ситуация обрабатывается правильно.

    Реагенты

    Перед реагентом может стоять числовой коэффициент. Далее идут элементы.
    Элементами чаще всего являются обозначения атомов. Но могут быть абстрактные элементы или комментарии.
    Атомы обозначаются точно так же, как в таблице Менделеева. Необходимо точное соответствие больших и маленьких букв. Например: Sn - олово, SN - сера и азот, sn - ошибка.
    После элемента можно указать количественный коэффициент: H2SO4 превращается в H2SO4.

    Группы элементов

    Элементы можно группировать при помощи обычных или квадратных скобок. При указании количественного коэффициента и других свойств группа элементов рассматривается как один элемент.
    Ca(OH)2 Ca(OH)2
    Al2(SO4)3 Al2(SO4)3
    K3[Fe(CN)6] K3[Fe(CN)6]

    Заряд иона и степень окисления

    Если нужно указать заряд иона, то для этого в конце реагента ставится знак ^ и заряд в удобном виде. Можно написать + - ++ -- +2 2+. Можно писать римские цифры, но маленькими буквами, т.к. большие используются для обозначения химических элементов.
    Степень окисления элемента можно указать сразу после обозначения этого элемента в круглых скобках.
    3H^+ + PO4^3- 3H^+ + PO4^3-
    H(+)N(+5)O(-2)3 H(+)N(+5)O(-2)3
    Fe(iii)4[Fe(ii)(CN)6]3 Fe(iii)4[Fe(ii)(CN)6]3

    Комментарии

    При описании реагента или операции можно добавить комментарий. Это строка в кавычках. Комментарий записывается вплотную (без пробела). Внутри кавычек можно использовать любые символы (кроме кавычек). Есть несколько магических сочетаний для часто используемых специальных символов:
    Описание Исходное обозначение Выводимый результат
    Градус ^o °
    Стрелка вверх |^ или ArrowUp
    Стрелка вниз |v или ArrowDown
    Пример:
    CaCO3"(тв)" "1000^oC"--> CaO + CO2"|^" CaCO3"(тв)" "1000^oC"--> CaO + CO2"|^"

    Кроме того, в комментариях можно использовать греческие буквы. Для этого нужно ввести название буквы в квадратных скобках.

    2H2 + O2 -> 2H2O", [Delta]H = -483,6 kJ/mol" 2H2 + O2 -> 2H2O", [Delta]H = -483,6 kJ/mol"

    Абстрактные элементы

    Иногда нужно написать формулу не одного вещества, а группы веществ, объединённым общим свойством. Или какую-то сложную часть формулы необходимо заменить условным обозначением. Для этого можно использовать любой текст в фигурных скобках:
    Гидрооксид {R}-OH {R}-OH
    Аминокислота NH2-CH({R})-COOH NH2-CH({R})-COOH
    Хелатный комплекс железа [Fe({EDTA})]^- [Fe({EDTA})]^-
    Текст, взятый в фигурные скобки является абстрактным элементом. В чём-то он похож на комментарий. К нему применимы количественные коэффициенты и степени окисления.

    Абстрактные коэффициенты

    Для молекул полимеров часто указывают не точные коэффициенты, а используют обозначение n. В easyChem для этого можно использовать любой текст, взятый в одинарные кавычки (апострофы). Если абстрактный коэффициент стоит перед реагентом, он применяется ко всему реагенту. Если после элемента, то к элементу.
    Полиэтилен CH3-(CH2)'n'-CH3 CH3-(CH2)'n'-CH3
    Ржавчина Fe(OH)'3-x'O'x/2' Fe(OH)'3-x'O'x/2'
    Для таких формул невозможно вычисление молекулярной массы и брутто-формул.

    Изотопы

    Чтобы указать атомную массу следующего элемента, следует использовать функцию $M:
    Уран-235 $M(235)U $M(235)U
    Тяжёлая вода $M(2)H2O $M(2)H2O

    Выделение цветом

    Различные участки формулы можно выделить цветом. Для этого можно воспользоваться несколькими функциями, перечисленными в таблице ниже. Цвет в них задаётся так же, как в HTML и CSS: либо названиями (red, green, blue...), либо шеснадцатеричными значениями (#FF0000, #0F0, #008).
    Функция Назначение Область действия
    $color(red) Общий цвет До конца формулы.
    $itemColor(red) Цвет элементов. Не влияет на связи, операции и начальный коэффициент реагентов. До конца формулы.
    $itemColor1(green) Цвет элемента. Только на следующий элемент.
    $atomColor(black) Цвет атомов. Влияет только на атомы. До конца формулы.
    $atomColor1(#F00) Цвет атома. Только на следующий элемент.
    Можно вызывать эти функции с пустыми скобками, чтобы вернуть исходный цвет.
    Пример:
    2$itemColor1(red)NaOH + $atomColor(blue)2H2SO4$atomColor() = $itemColor1(#F00)Na2SO4 + $color(#00F)H2"|^"
    2$itemColor1(red)NaOH + $atomColor(blue)2H2SO4$atomColor() = $itemColor1(#F00)Na2SO4 + $color(#00F)H2"|^"