> For the complete documentation index, see [llms.txt](https://overleaf-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://overleaf-pro.ayaka.space/latex/ru/struktura-dokumenta/06-nomenclatures.md).

# Номенклатуры

## Введение

Список сокращений и символов часто встречается во многих научных документах. Такие списки можно создавать в LaTeX с помощью пакета `nomencl` . В этой статье объясняется, как создавать номенклатуры, настраивая порядок и группировку символов.

Элементы списка обозначений работают почти так же, как элементы указателя:

```latex
\documentclass{article}
\usepackage{nomencl}
\makenomenclature

\begin{document}
Вот пример:
\nomenclature{\(c\)}{Скорость света в вакууме}
\nomenclature{\(h\)}{Постоянная Планка}

\printnomenclature
\end{document}
```

[Откройте этот `nomencl` пример в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=nomencl+package+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bnomencl%7D%0A%5Cmakenomenclature%0A%0A%5Cbegin%7Bdocument%7D%0AHere+is+an+example%3A%0A%5Cnomenclature%7B%5C%28c%5C%29%7D%7BSpeed+of+light+in+a+vacuum%7D%0A%5Cnomenclature%7B%5C%28h%5C%29%7D%7BPlanck+constant%7D%0A%0A%5Cprintnomenclature%0A%5Cend%7Bdocument%7D)

![Nomenclatures01OLV2.png](/files/79f0e69152839bdc4da061e8e6e5b770701bf8dc)

Как обычно, пакет импортируется в преамбуле с помощью `\usepackage{nomencl}`. Три базовые команды для создания номенклатур:

* `\makenomenclature`. Обычно помещается сразу после подключения пакета.
* `\nomenclature`. Используется для определения самих элементов списка обозначений. Принимает два аргумента: символ и соответствующее описание.
* `\printnomenclatures`. Эта команда выведет список номенклатур.

## Основной синтаксис

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

```latex
\documentclass{article}
\usepackage[spanish]{babel}
\usepackage[intoc, spanish]{nomencl}
\makenomenclature

\begin{document}
\tableofcontents

\section{Primera Sección}

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam lobortisfacilisis sem. Nullam nec mi et neque pharetra sollicitudin. Praesent imperdie...

\nomenclature{\(c\)}{Скорость света в вакууме}
\nomenclature{\(h\)}{Постоянная Планка}

\printnomenclature
\end{document}
```

[Откройте этот `nomencl` пример в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=nomencl+package+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bspanish%5D%7Bbabel%7D%0A%5Cusepackage%5Bintoc%2C+spanish%5D%7Bnomencl%7D%0A%5Cmakenomenclature%0A%0A%5Cbegin%7Bdocument%7D%0A%5Ctableofcontents%0A%0A%5Csection%7BPrimera+Secci%C3%B3n%7D%0A%0ALorem+ipsum+dolor+sit+amet%2C+consectetuer+adipiscing+elit.+Etiam+lobortisfacilisis+sem.+Nullam+nec+mi+et+neque+pharetra+sollicitudin.+Praesent+imperdie...%0A%0A%5Cnomenclature%7B%5C%28c%5C%29%7D%7BSpeed+of+light+in+a+vacuum%7D%0A%5Cnomenclature%7B%5C%28h%5C%29%7D%7BPlanck+constant%7D%0A%0A%5Cprintnomenclature%0A%5Cend%7Bdocument%7D)

![Nomenclatures02OLV2.png](/files/f4b13078f2071c5f0cfe45e59cb3b378e9b8a806)

Дополнительные параметры, используемые здесь при подключении пакета, таковы:

* `intoc` Добавляет **список обозначений** в оглавление.
* `испанский` Изменяет язык, соответствующим образом переводя заголовок по умолчанию *Списки обозначений* в соответствии с ним. Поддерживаемые языки: `хорватский`, `датский`, `английский`, `французский`, `немецкий`, `итальянский`, `польский`, `португальский`, `russian`, `испанский` и `украинский`.

Другие полезные возможности `nomencl` пакета — это возможность вручную задать заголовок списка обозначений и добавить дополнительную аннотацию.

```latex
\documentclass{article}
\usepackage{nomencl}
\makenomenclature

\renewcommand{\nomname}{List of Symbols}

\renewcommand{\nompreamble}{Следующий список описывает несколько символов, которые будут позже использоваться в тексте документа}

\begin{document}
Вот пример:

\nomenclature{\(c\)}{Скорость света в вакууме}
\nomenclature{\(h\)}{Постоянная Планка}

\printnomenclature
\end{document}
```

[Откройте этот `nomencl` пример в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=nomencl+package+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bnomencl%7D%0A%5Cmakenomenclature%0A%0A%5Crenewcommand%7B%5Cnomname%7D%7BList+of+Symbols%7D%0A%0A%5Crenewcommand%7B%5Cnompreamble%7D%7BThe+next+list+describes+several+symbols+that+will+be+later+used+within+the+body+of+the+document%7D%0A%0A%5Cbegin%7Bdocument%7D%0AHere+is+an+example%3A%0A%0A%5Cnomenclature%7B%5C%28c%5C%29%7D%7BSpeed+of+light+in+a+vacuum%7D%0A%5Cnomenclature%7B%5C%28h%5C%29%7D%7BPlanck+constant%7D%0A%0A%5Cprintnomenclature%0A%5Cend%7Bdocument%7D)

![Nomenclatures03verbOLV2.png](/files/0fd4605601ee4dd67be54d7982b40f2b313ef315)

Строка

```
\renewcommand{\nomname}{List of Symbols}
```

изменяет заголовок по умолчанию.

Команда

```
\renewcommand{\nompreamble}{Следующий список...}
```

вставляет текст между заголовком и списком символов.

## Группировка

Чтобы сгруппировать символы в зависимости от их типа, требуется дополнительная работа. Мы добавляем префикс к каждому символу и используем пакет `etoolbox` для сравнения префиксов.

```latex
\documentclass{article}
\usepackage{amssymb}
\usepackage{nomencl}
\makenomenclature

%% Этот код создаёт группы
% -----------------------------------------
\usepackage{etoolbox}
\renewcommand\nomgroup[1]{%
  \item[\bfseries
  \ifstrequal{#1}{P}{Физические константы}{%
  \ifstrequal{#1}{N}{Множества чисел}{%
  \ifstrequal{#1}{O}{Другие символы}{}}}%
]}
% -----------------------------------------

\begin{document}
Вот пример:

\nomenclature[P]{\(c\)}{Скорость света в вакууме}
\nomenclature[P]{\(h\)}{Постоянная Планка}
\nomenclature[P]{\(G\)}{Гравитационная постоянная}
\nomenclature[N]{\(\mathbb{R}\)}{Вещественные числа}
\nomenclature[N]{\(\mathbb{C}\)}{Комплексные числа}
\nomenclature[N]{\(\mathbb{H}\)}{Кватернионы}
\nomenclature[O]{\(V\)}{Постоянный объём}
\nomenclature[O]{\(\rho\)}{Индекс трения}

\printnomenclature
\end{document}
```

[Откройте этот `nomencl` пример в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=nomencl+package+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bamssymb%7D%0A%5Cusepackage%7Bnomencl%7D%0A%5Cmakenomenclature%0A%0A%25%25+This+code+creates+the+groups%0A%25+-----------------------------------------%0A%5Cusepackage%7Betoolbox%7D%0A%5Crenewcommand%5Cnomgroup%5B1%5D%7B%25%0A++%5Citem%5B%5Cbfseries%0A++%5Cifstrequal%7B%231%7D%7BP%7D%7BPhysics+constants%7D%7B%25%0A++%5Cifstrequal%7B%231%7D%7BN%7D%7BNumber+sets%7D%7B%25%0A++%5Cifstrequal%7B%231%7D%7BO%7D%7BOther+symbols%7D%7B%7D%7D%7D%25%0A%5D%7D%0A%25+-----------------------------------------%0A%0A%5Cbegin%7Bdocument%7D%0AHere+is+an+example%3A%0A%0A%5Cnomenclature%5BP%5D%7B%5C%28c%5C%29%7D%7BSpeed+of+light+in+a+vacuum%7D%0A%5Cnomenclature%5BP%5D%7B%5C%28h%5C%29%7D%7BPlanck+constant%7D%0A%5Cnomenclature%5BP%5D%7B%5C%28G%5C%29%7D%7BGravitational+constant%7D%0A%5Cnomenclature%5BN%5D%7B%5C%28%5Cmathbb%7BR%7D%5C%29%7D%7BReal+numbers%7D%0A%5Cnomenclature%5BN%5D%7B%5C%28%5Cmathbb%7BC%7D%5C%29%7D%7BComplex+numbers%7D%0A%5Cnomenclature%5BN%5D%7B%5C%28%5Cmathbb%7BH%7D%5C%29%7D%7BQuaternions%7D%0A%5Cnomenclature%5BO%5D%7B%5C%28V%5C%29%7D%7BConstant+volume%7D%0A%5Cnomenclature%5BO%5D%7B%5C%28%5Crho%5C%29%7D%7BFriction+index%7D%0A%0A%5Cprintnomenclature%0A%5Cend%7Bdocument%7D)

![Nomenclatures04OLV2.png](/files/203c8d714f63c9d5d09c4477b0b440b4b6bba460)

Добавлены ещё несколько групп. Код для этого не так прост, он использует команду `\ifstrequal{}{}{}{}`, первые два аргумента — это строки для сравнения; если они равны, термин добавляется в группу, иначе проверяется следующее вложенное условие.

Обратите внимание, что теперь каждая `\nomenclature` команда имеет дополнительный аргумент — префикс в квадратных скобках; он используется в коде группировки.

Если `etoolbox` недоступна, можно использовать `ifthen` пакет вместо неё, который предоставляет условный оператор `\ifthenelse{}{}{}`, но синтаксис немного сложнее:

```latex
\usepackage{ifthen}
  \renewcommand{\nomgroup}[1]{%
  \item[\bfseries
  \ifthenelse{\equal{#1}{P}}{Физические константы}{%
  \ifthenelse{\equal{#1}{O}}{Другие символы}{%
  \ifthenelse{\equal{#1}{N}}{Множества чисел}{}}}%
  ]}
```

Это создаст те же группы списка обозначений.

## Добавление единиц для физических констант

Ещё одна интересная возможность — использовать пакет `siunitx` для добавления единиц, выравнивая их по правому краю соответствующих элементов. Для этого нужно определить макрос `nomunit` как показано в следующем примере:

```latex
\documentclass{article}
\usepackage{amssymb}
\usepackage{nomencl}
\usepackage{siunitx}
\usepackage{hyperref}
\makenomenclature
\hypersetup{
    colorlinks=true,
    urlcolor=blue,
}
%% Это добавит подгруппы
%----------------------------------------------
\usepackage{etoolbox}
\renewcommand\nomgroup[1]{%
  \item[\bfseries
  \ifstrequal{#1}{A}{Физические константы}{%
  \ifstrequal{#1}{B}{Множества чисел}{%
  \ifstrequal{#1}{C}{Другие символы}{}}}%
]}
%----------------------------------------------

%% Это добавит единицы
%----------------------------------------------
\newcommand{\nomunit}[1]{%
\renewcommand{\nomentryend}{\hspace*{\fill}#1}}
%----------------------------------------------

\title{Пример номенклатуры}
\author{Команда Overleaf}
\date{\today}

\begin{document}
\maketitle

\noindent Это пример, показывающий, как работает пакет \texttt{nomencl}, с единицами, набранными с помощью пакета \texttt{siunitx}. Для указания значений физических констант и соответствующих им единиц использовался \href{https://www.nist.gov/pml/fundamental-physical-constants}{NIST} — ссылки добавляются с помощью пакета \texttt{hyperref}:

\nomenclature[A, 02]{\(c\)}{\href{https://physics.nist.gov/cgi-bin/cuu/Value?c}
{Скорость света в вакууме}
\nomunit{\SI{299792458}{\meter\per\second}}}
\nomenclature[A, 03]{\(h\)}{\href{https://physics.nist.gov/cgi-bin/cuu/Value?h}
{Постоянная Планка}
\nomunit{\SI[group-digits=false]{6.62607015e-34}{\joule\per\hertz}}}
\nomenclature[A, 01]{\(G\)}{\href{https://physics.nist.gov/cgi-bin/cuu/Value?bg}
{Гравитационная постоянная}
\nomunit{\SI[group-digits=false]{6.67430e-11}{\meter\cubed\per\kilogram\per\second\squared}}}
\nomenclature[B, 03]{\(\mathbb{R}\)}{Вещественные числа}
\nomenclature[B, 02]{\(\mathbb{C}\)}{Комплексные числа}
\nomenclature[B, 01]{\(\mathbb{H}\)}{Кватернионы}
\nomenclature[C]{\(V\)}{Постоянный объём}
\nomenclature[C]{\(\rho\)}{Индекс трения}

\printnomenclature

\end{document}
```

[Открыть в Overleaf (пример с использованием `nomencl` и `siunitx` пакетов).](/latex/ru/struktura-dokumenta/06-nomenclatures.md)

![Nomcomplex.png](/files/b8d979a557248a711d2a5ac153cdaa691d86e5f6)

## Сортировка элементов

Это порядок сортировки по умолчанию:

```latex
\documentclass{article}
\usepackage{nomencl}

\makenomenclature

\begin{document}
Вот пример:

\nomenclature{\(+a\)}{Оператор}
\nomenclature{\(2a\)}{Число}
\nomenclature{\(:a\)}{Знак пунктуации}
\nomenclature{\(Aa\)}{Заглавная буква}
\nomenclature{\(aa\)}{Строчная буква}
\nomenclature{\(\alpha\)}{Греческий символ}

\printnomenclature

\end{document}
```

[Откройте этот `nomencl` пример в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=nomencl+default+sort+order\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bnomencl%7D%0A%0A%5Cmakenomenclature%0A%0A%5Cbegin%7Bdocument%7D%0AHere+is+an+example%3A%0A%0A%5Cnomenclature%7B%5C%28%2Ba%5C%29%7D%7BOperator%7D%0A%5Cnomenclature%7B%5C%282a%5C%29%7D%7BNumber%7D%0A%5Cnomenclature%7B%5C%28%3Aa%5C%29%7D%7BPunctuation+symbol%7D%0A%5Cnomenclature%7B%5C%28Aa%5C%29%7D%7BUppercase+letter%7D%0A%5Cnomenclature%7B%5C%28aa%5C%29%7D%7BLowercase+letter%7D%0A%5Cnomenclature%7B%5C%28%5Calpha%5C%29%7D%7BGreek+character%7D%0A%0A%5Cprintnomenclature%0A%0A%5Cend%7Bdocument%7D)

![Nomenclatures05OLV2.png](/files/be74cf53995bf9608ce488edbb3132b828d4822a)

Обратите внимание, что греческий символ появился перед алфавитными символами из-за обратной косой черты `\` в `\alpha`.

Как и при группировке, можно использовать префикс для ручной сортировки элементов списка обозначений:

```latex
\documentclass{article}
\usepackage{nomencl}

\makenomenclature

\begin{document}
Вот пример:

\nomenclature[06]{\(+a\)}{Оператор}
\nomenclature[03]{\(2a\)}{Число}
\nomenclature[05]{\(:a\)}{Знак пунктуации}
\nomenclature[04]{\(Aa\)}{Заглавная буква}
\nomenclature[01]{\(aa\)}{Строчная буква}
\nomenclature[02]{\(\alpha\)}{Греческий символ}

\printnomenclature

\end{document}
```

[Откройте этот `nomencl` пример в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Sorting+nomencl+entries\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bnomencl%7D%0A%0A%5Cmakenomenclature%0A%0A%5Cbegin%7Bdocument%7D%0AHere+is+an+example%3A%0A%0A%5Cnomenclature%5B06%5D%7B%5C%28%2Ba%5C%29%7D%7BOperator%7D%0A%5Cnomenclature%5B03%5D%7B%5C%282a%5C%29%7D%7BNumber%7D%0A%5Cnomenclature%5B05%5D%7B%5C%28%3Aa%5C%29%7D%7BPunctuation+symbol%7D%0A%5Cnomenclature%5B04%5D%7B%5C%28Aa%5C%29%7D%7BUppercase+letter%7D%0A%5Cnomenclature%5B01%5D%7B%5C%28aa%5C%29%7D%7BLowercase+letter%7D%0A%5Cnomenclature%5B02%5D%7B%5C%28%5Calpha%5C%29%7D%7BGreek+character%7D%0A%0A%5Cprintnomenclature%0A%0A%5Cend%7Bdocument%7D)

![Nomenclatures06OLV2.png](/files/c7683528764ab6c0b53db1dcf4fc159772cb25ac)

Число в квадратных скобках определяет порядок вывода соответствующего символа. Можно также совместить группировку и ручную сортировку:

```latex
\documentclass{article}
\usepackage{amssymb}
\usepackage{nomencl}
\makenomenclature

\usepackage{etoolbox}
\renewcommand\nomgroup[1]{%
  \item[\bfseries
  \ifstrequal{#1}{A}{Физические константы}{%
  \ifstrequal{#1}{B}{Множества чисел}{%
  \ifstrequal{#1}{C}{Другие символы}{}}}%
]}

\begin{document}
Вот пример:

\nomenclature[A, 02]{\(c\)}{Скорость света в вакууме}
\nomenclature[A, 03]{\(h\)}{Постоянная Планка}
\nomenclature[A, 01]{\(G\)}{Гравитационная постоянная}
\nomenclature[B, 03]{\(\mathbb{R}\)}{Вещественные числа}
\nomenclature[B, 02]{\(\mathbb{C}\)}{Комплексные числа}
\nomenclature[B, 01]{\(\mathbb{H}\)}{Октоннионы}
\nomenclature[C]{\(V\)}{Постоянный объём}
\nomenclature[C]{\(\rho\)}{Индекс трения}

\printnomenclature

\end{document}
```

[Откройте этот `nomencl` пример в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Grouping+and+sorting+with+nomencl\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bamssymb%7D%0A%5Cusepackage%7Bnomencl%7D%0A%5Cmakenomenclature%0A%0A%5Cusepackage%7Betoolbox%7D%0A%5Crenewcommand%5Cnomgroup%5B1%5D%7B%25%0A++%5Citem%5B%5Cbfseries%0A++%5Cifstrequal%7B%231%7D%7BA%7D%7BPhysics+Constants%7D%7B%25%0A++%5Cifstrequal%7B%231%7D%7BB%7D%7BNumber+Sets%7D%7B%25%0A++%5Cifstrequal%7B%231%7D%7BC%7D%7BOther+Symbols%7D%7B%7D%7D%7D%25%0A%5D%7D%0A%0A%5Cbegin%7Bdocument%7D%0AHere+is+an+example%3A%0A%0A%5Cnomenclature%5BA%2C+02%5D%7B%5C%28c%5C%29%7D%7BSpeed+of+light+in+a+vacuum%7D%0A%5Cnomenclature%5BA%2C+03%5D%7B%5C%28h%5C%29%7D%7BPlanck+constant%7D%0A%5Cnomenclature%5BA%2C+01%5D%7B%5C%28G%5C%29%7D%7BGravitational+constant%7D%0A%5Cnomenclature%5BB%2C+03%5D%7B%5C%28%5Cmathbb%7BR%7D%5C%29%7D%7BReal+numbers%7D%0A%5Cnomenclature%5BB%2C+02%5D%7B%5C%28%5Cmathbb%7BC%7D%5C%29%7D%7BComplex+numbers%7D%0A%5Cnomenclature%5BB%2C+01%5D%7B%5C%28%5Cmathbb%7BH%7D%5C%29%7D%7BOctonions%7D%0A%5Cnomenclature%5BC%5D%7B%5C%28V%5C%29%7D%7BConstant+volume%7D%0A%5Cnomenclature%5BC%5D%7B%5C%28%5Crho%5C%29%7D%7BFriction+index%7D%0A%0A%5Cprintnomenclature%0A%0A%5Cend%7Bdocument%7D)

![Nomenclatures07OLV2.png](/files/7b56cfd19d6528fdcdb45aeb0b5b9aab0ec80cf8)

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

## Дополнительная литература

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

* [Глоссарии](/latex/ru/struktura-dokumenta/05-glossaries.md)
* [Многофайловые проекты LaTeX](/latex/ru/struktura-dokumenta/08-multi-file-latex-projects.md)
* [Выравнивание текста](/latex/ru/formatirovanie/06-text-alignment.md)
* [Полужирный, курсив и подчёркивание](/latex/ru/osnovy-latex/03-bold-italics-and-underlining.md)
* [Математические выражения](/latex/ru/matematika/01-mathematical-expressions.md)
* [Создание и переопределение макросов](/latex/ru/komandy/01-commands.md)
* [`nomencl` документация пакета](http://mirror.jmu.edu/pub/CTAN/macros/latex/contrib/nomencl/nomencl.pdf)
* [`ifthen` документация пакета](http://texdoc.net/texmf-dist/doc/latex/base/ifthen.pdf)
* [`etoolbox` документация пакета](http://mirror.math.ku.edu/tex-archive/macros/latex/contrib/etoolbox/etoolbox.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://overleaf-pro.ayaka.space/latex/ru/struktura-dokumenta/06-nomenclatures.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.
