> For the complete documentation index, see [llms.txt](https://ayakaleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ayakaleaf-pro.ayaka.space/latex/ru/specializirovannye/04-molecular-orbital-diagrams.md).

# Диаграммы молекулярных орбиталей

Эта статья даёт краткое введение в создание [диаграмм молекулярных орбиталей](https://en.wikipedia.org/wiki/Molecular_orbital_diagram) в LaTeX с использованием [`modiagram` пакет](https://ctan.org/pkg/modiagram?lang=en). Читателям настоятельно рекомендуется обратиться к [`modiagram` документация пакета](http://mirrors.ctan.org/macros/latex/contrib/modiagram/modiagram_en.pdf) которое содержит множество полезных примеров, демонстрирующих его многочисленные возможности — гораздо больше, чем мы можем рассмотреть в этой короткой статье.

Для информации о более традиционных *диаграммах молекулярной структуры* см. нашу документацию по [химическим формулам](/latex/ru/specializirovannye/02-chemistry-formulae.md).

## Введение

Молекулярные диаграммы создаются с помощью [`modiagram` пакет](https://ctan.org/pkg/modiagram?lang=en) который вы импортируете в документ, добавив следующую строку в преамбулу:

`\usepackage{modiagram}`\[$$\langle$$`параметров`$$\rangle$$]

Набор $$\langle$$`параметров`$$\rangle$$ перечислены и продемонстрированы в [документация пакета](http://mirrors.ctan.org/macros/latex/contrib/modiagram/modiagram_en.pdf).

Чтобы применить параметры пакета $$\langle$$`параметров`$$\rangle$$ *глобально* вы можете

* задавать их при подключении пакета через `\usepackage{modiagram}`\[$$\langle$$`параметров`$$\rangle$$], или
* использовать команду настройки `\setmodiagram`{$$\langle$$`параметров`$$\rangle$$}

Диаграммы МО создаются с помощью `modiagram` окружения, которое поддерживает локальное использование параметров пакета $$\langle$$`параметров`$$\rangle$$:

`\begin{modiagram}`\[$$\langle$$`параметров`$$\rangle$$] ...

`\end{modiagram}`

Следующий пример демонстрирует минимальное `modiagram` окружение без использования каких-либо $$\langle$$`параметров`$$\rangle$$:

```latex
\documentclass{article}
\usepackage{modiagram}
\begin{document}

Первый пример атомов:

\begin{modiagram}
\atom{left}{1s, 2s, 2p}
\end{modiagram}
\end{document}
```

[Откройте этот пример в Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=example+of+molecular+diagram\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bmodiagram%7D%0A%5Cbegin%7Bdocument%7D%0A%0AFirst+example+atoms%3A%0A%0A%5Cbegin%7Bmodiagram%7D%0A%5Catom%7Bleft%7D%7B1s%2C+2s%2C+2p%7D%0A%5Cend%7Bmodiagram%7D%0A%5Cend%7Bdocument%7D)

Этот пример выдаёт следующий результат:

![Пример диаграммы молекулярной орбитали, созданной в LaTeX](/files/3dfd5aa6e0c1f48f163697a055e3efd2a179172b)

Основная команда для построения диаграмм МО — `\atom` который, как показано в приведённом выше примере, принимает два аргумента:

* `левый`: выравнивание атома.
* `1s, 2s, 2p`: энергетические подуровни, которые нужно изобразить. Их можно дополнительно настраивать, как вы узнаете в [следующий раздел](#atoms).

## Атомы

Вы можете передать команде, представленной во вводном примере, дополнительную информацию об атомных орбиталях.

```latex
\documentclass{article}
\usepackage{modiagram}
\begin{document}

\begin{modiagram}
 \atom{right}{
    1s = { 0; pair} ,
    2s = { 1; pair} ,
    2p = {1.5; up, down }
 }

 \atom{left}{
    1s = { 0; pair} ,
    2s = { 1; pair} ,
    2p = {1.5; up, down }
 }
 \end{modiagram}
\end{document}
```

[Откройте этот пример в Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=example+of+molecular+diagram\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bmodiagram%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cbegin%7Bmodiagram%7D%0A+%5Catom%7Bright%7D%7B%0A++++1s+%3D+%7B+0%3B+pair%7D+%2C%0A++++2s+%3D+%7B+1%3B+pair%7D+%2C%0A++++2p+%3D+%7B1.5%3B+up%2C+down+%7D%0A+%7D%0A%0A+%5Catom%7Bleft%7D%7B%0A++++1s+%3D+%7B+0%3B+pair%7D+%2C%0A++++2s+%3D+%7B+1%3B+pair%7D+%2C%0A++++2p+%3D+%7B1.5%3B+up%2C+down+%7D%0A+%7D%0A+%5Cend%7Bmodiagram%7D%0A%5Cend%7Bdocument%7D)

Этот пример выдаёт следующий результат:

![пример атомных орбиталей](/files/7d3317f4de2638a999a9353b501f258b60bff34a)

В этом примере изображены два одинаковых атома, соответственно выровненные по левому и правому краю.

В соответствии со стилем `modiagram` документации пакета, общий синтаксис создания атомов можно записать так:

`\atom`\[$$\langle$$`name`$$\rangle$$]{$$\langle$$`левый`$$\rangle$$|$$\langle$$`правый`$$\rangle$$}{$$\langle$$`AO-spec`$$\rangle$$}

где

* $$\langle$$`name`$$\rangle$$ — это необязательное имя атома
* $$\langle$$`левый`$$\rangle$$ и $$\langle$$`правый`$$\rangle$$ определяет размещение на диаграмме
* $$\langle$$`AO-spec`$$\rangle$$ — это спецификация атомной орбитали.

Это $$\langle$$`AO-spec`$$\rangle$$ имеет общий вид

```latex
подуровень = {энергия; спецификации}
```

где

* `подуровень` может быть `1s`, `2s` или `2p`
* `энергия` — это энергетический уровень, число, определяющее вертикальный интервал на диаграмме. Если опущено, ему присваивается 0.
* `спецификации` — это разделённый запятыми список спинов электронов, содержащихся на каждой орбитали. Возможные значения: `up`, `вниз`, `пара` и пусто (печатается только точка с запятой) для пустой орбитали. Если опущено, ему присваивается `пара`.

Вот описание команд, использованных в предыдущем примере:

* `1s = { 0; pair}`. Подуровень `1s` находится на `0` энергетическом уровне, орбиталь содержит два (спаренных) электрона.
* `2s = { 1; pair}`. Подуровень `2s` изображён на `1` энергетическом уровне, на этой орбитали находятся два электрона.
* `2p = {1.5; up, down}`. Подуровень `2p` изображён на энергетическом уровне `1.5`, то есть на диаграмме вертикальный интервал установлен равным 1.5; этот подэнергетический уровень имеет два электрона: один со спином `up` на первой орбитали и ещё один со спином `вниз` на второй орбитали.

Те же команды повторяются для второго атома справа.

Чтобы отобразить (необязательное) `name` имя `modiagram` окружение с `[names]` параметром:

```latex
\documentclass{article}
\usepackage{modiagram}
\begin{document}
\begin{modiagram}[names]
 \atom[Atom on the right]{right}{
    1s = { 0; pair} ,
    2s = { 1; pair} ,
    2p = {1.5; up, down }
 }

 \atom[Atom on the left]{left}{
    1s = { 0; pair} ,
    2s = { 1; pair} ,
    2p = {1.5; up, down }
 }
\end{modiagram}
\end{document}
```

[Откройте этот пример в Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+the+names+option+in+a+molecular+diagram\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bmodiagram%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bmodiagram%7D%5Bnames%5D%0A+%5Catom%5BAtom+on+the+right%5D%7Bright%7D%7B%0A++++1s+%3D+%7B+0%3B+pair%7D+%2C%0A++++2s+%3D+%7B+1%3B+pair%7D+%2C%0A++++2p+%3D+%7B1.5%3B+up%2C+down+%7D%0A+%7D%0A%0A+%5Catom%5BAtom+on+the+left%5D%7Bleft%7D%7B%0A++++1s+%3D+%7B+0%3B+pair%7D+%2C%0A++++2s+%3D+%7B+1%3B+pair%7D+%2C%0A++++2p+%3D+%7B1.5%3B+up%2C+down+%7D%0A+%7D%0A%5Cend%7Bmodiagram%7D%0A%5Cend%7Bdocument%7D)

Этот пример выдаёт следующий результат:

![Пример молекулярной орбитали](/files/68fac21f93ad3a3f78ee4b02fa34aee058c1ae77)

## Молекулы

Синтаксис для молекул очень похож на синтаксис [`\atom`](#atoms) и, в стиле документации, может быть записан так:

`\molecule`\[$$\langle$$`name`$$\rangle$$]{$$\langle$$`MO-spec`$$\rangle$$}

где

* $$\langle$$`name`$$\rangle$$ — это необязательная подпись молекулы
* $$\langle$$`MO-spec`$$\rangle$$ — это спецификация молекулярной орбитали

Энергетические подуровни `1s`, `2s` и `2p` становятся `1sMO`, `2sMO` и `2pMO` соответственно. Вот базовый пример:

```latex
\documentclass{article}
\usepackage{modiagram}
\begin{document}
\begin{modiagram}
 \atom{left}{1s}
 \atom{right}{1s={;up}}
 \molecule{
    1sMO={0.75;pair,up}
  }
\end{modiagram}
\end{document}
```

[Откройте этот пример в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Molecule+example+with+modiagram+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bmodiagram%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bmodiagram%7D%0A+%5Catom%7Bleft%7D%7B1s%7D%0A+%5Catom%7Bright%7D%7B1s%3D%7B%3Bup%7D%7D%0A+%5Cmolecule%7B%0A++++1sMO%3D%7B0.75%3Bpair%2Cup%7D%0A++%7D%0A%5Cend%7Bmodiagram%7D%0A%5Cend%7Bdocument%7D)

Этот пример выдаёт следующий результат:

![пример диаграммы молекулы](/files/234d12a201db1281ad7c3b1f0ca071bc3d5a3bed)

В приведённом выше примере спецификация молекулярной орбитали ($$\langle$$`MO-spec`$$\rangle$$ ) представляет собой

```latex
1sMO={0.75;pair,up}
```

где

* `0.75` теперь является отношением *(прирост энергии)/(потеря энергии)*.
* `пара, вверх` — это спины электронов в связывающих и анти-связывающих молекулярных орбиталях соответственно.

Следующий, чуть более подробный, пример поможет вам понять синтаксис:

```latex
\documentclass{article}
\usepackage{modiagram}
\begin{document}
\begin{modiagram}
 \atom{left}{
      1s, 2s, 2p = {;pair,up,up}
  }
  \atom{right}{
      1s, 2s, 2p = {;pair,up,up}
  }
  \molecule{
      1sMO, 2sMO, 2pMO = {;pair,pair,pair,up,up}
  }
\end{modiagram}
\end{document}
```

[Откройте этот пример в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=More+elaborate+modiagram+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bmodiagram%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bmodiagram%7D%0A+%5Catom%7Bleft%7D%7B%0A++++++1s%2C+2s%2C+2p+%3D+%7B%3Bpair%2Cup%2Cup%7D%0A++%7D%0A++%5Catom%7Bright%7D%7B%0A++++++1s%2C+2s%2C+2p+%3D+%7B%3Bpair%2Cup%2Cup%7D%0A++%7D%0A++%5Cmolecule%7B%0A++++++1sMO%2C+2sMO%2C+2pMO+%3D+%7B%3Bpair%2Cpair%2Cpair%2Cup%2Cup%7D%0A++%7D%0A%5Cend%7Bmodiagram%7D%0A%5Cend%7Bdocument%7D)

Этот пример выдаёт следующий результат:

![подробный пример молекулярной орбитали](/files/9993016cbd8612fe636c7da31438e1ff74f4d250)

По три атома расположены с каждой стороны диаграммы, а соответствующая молекула — в середине.

## Схема именования

Следующая диаграмма воспроизводится из [`modiagram` пакет](https://ctan.org/pkg/modiagram?lang=en) документации. Она содержит имена (метки), используемые для орбиталей, которые являются узлами в `tikzpicture` и потому могут использоваться в стандартных командах рисования TikZ внутри `modiagram` окружение.

![имена орбиталей в modiagram](/files/b3aae0303ae5694fb15e61c95329b7f98e33dc64)

Вот пример, использующий имя анти-связывающей орбитали `1sigma*` для относительного позиционирования.

```latex
\documentclass{article}
\usepackage{modiagram}
\begin{document}
\begin{modiagram}
 \atom{left}{1s}
 \atom{right}{1s={;up}}
 \molecule{
    1sMO={;pair,up}
 }
 \draw[<-,shorten <=8pt,shorten >=15pt,blue]
 (1sigma*) --++(2,1) node {anti-bonding MO};
\end{modiagram}
\end{document}
```

[Откройте этот пример в Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+orbital+labels+in+an+modiagram+environment\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bmodiagram%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bmodiagram%7D%0A+%5Catom%7Bleft%7D%7B1s%7D%0A+%5Catom%7Bright%7D%7B1s%3D%7B%3Bup%7D%7D%0A+%5Cmolecule%7B%0A++++1sMO%3D%7B%3Bpair%2Cup%7D%0A+%7D%0A+%5Cdraw%5B%3C-%2Cshorten+%3C%3D8pt%2Cshorten+%3E%3D15pt%2Cblue%5D%0A+%281sigma%2A%29+--%2B%2B%282%2C1%29+node+%7Banti-bonding+MO%7D%3B%0A%5Cend%7Bmodiagram%7D%0A%5Cend%7Bdocument%7D)

Этот пример выдаёт следующий результат:

![пример орбитали с анти-связывающей](/files/2da7ce618672ef46f42f4db22b545a63401024a9)

## Дополнительное чтение

Для получения дополнительной информации см.:

* [Химические формулы](/latex/ru/specializirovannye/02-chemistry-formulae.md)
* [Диаграммы Фейнмана](/latex/ru/specializirovannye/03-feynman-diagrams.md)
* [Пакет TikZ](/latex/ru/risunki-i-tablicy/05-tikz-package.md)
* [Построение диаграмм прямо в LaTeX](/latex/ru/risunki-i-tablicy/04-picture-environment.md)
* [Вставка изображений](/latex/ru/drugie-temy/27-inserting-images.md)
* [Список греческих букв и математических символов](/latex/ru/matematika/11-list-of-greek-letters-and-math-symbols.md)
* [Это `modiagram` manual](http://mirrors.ctan.org/macros/latex/contrib/modiagram/modiagram_en.pdf)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ayakaleaf-pro.ayaka.space/latex/ru/specializirovannye/04-molecular-orbital-diagrams.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
