> 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/uk/formatuvannya/10-counters.md).

# Лічильники

## Вступ до лічильників LaTeX

Набір тексту на основі LaTeX — це спеціалізована форма програмування: ви використовуєте мову верстки (команди LaTeX), щоб надати «інструкції», які дають результат: скомпільований документ LaTeX у вигляді PDF-файлу. Як і в будь-якій програмній діяльності, цілком імовірно, що вам знадобиться LaTeX, щоб тимчасово зберігати цілі числа для подальшого повторного використання у вашому документі (коді) — можливо, ви захочете:

* верстати ці збережені цілі числа у вашому документі
* забезпечувати автоматичну нумерацію певних елементів вашого документа
* використовувати їх як змінні для керування умовним кодом (або циклами)
* змінювати та оновлювати їхні значення, збільшуючи/зменшуючи їх на певне фіксоване значення
* скидати їх до цілком інших значень

Такі операції з цілими числами надзвичайно поширені у «звичайних» мовах програмування, таких як Javascript, C, Lua або будь-яка інша мова на ваш вибір, де ви зазвичай оголошуєте (створюєте ім’я для) змінну (для зберігання цілого числа), а потім присвоюєте їй значення. Мова верстки LaTeX надає подібні можливості, хоча реалізовані зовсім інакше, як ми побачимо нижче.

По суті, лічильник LaTeX — це назва «змінної LaTeX», яка використовується для зберігання цілих чисел, що можуть бути застосовані для дій, перелічених вище, і для багато чого іншого. Сам LaTeX використовує численні внутрішні лічильники, які забезпечують нумерацію сторінок, розділів, таблиць, рисунків, маркованих/нумерованих списків тощо. У цій статті пояснюється, як отримувати доступ до цих лічильників і змінювати їх, а також як створювати та використовувати нові.

## Команди LaTeX для роботи з лічильниками

Нижче наведено список команд лічильників LaTeX із посиланням на їхній опис у наступних розділах.

Створення та збільшення лічильників:

* [`\newcounter{somecounter}[anothercounter]`](#newcountersomecounteranothercounter)
* [`\setcounter{somecounter}{number}`](#setcountersomecounternumber)
* [`\addtocounter{somecounter}{number}`](#addtocountersomecounternumber)
* [`\stepcounter{somecounter}`](#stepcountersomecounter)
* [`\refstepcounter{somecounter}`](#refstepcountersomecounter)

Доступ до значень лічильників і їх виведення:

* [`\arabic{somecounter}`](#arabicsomecounter)
* [`\roman{somecounter}`](#romansomecounter)
* [`\Roman{somecounter}`](#romanoutput)
* [`\alph{somecounter}`](#alphsomecounter)
* [`\Alph{somecounter}`](#alphoutput)
* [`\fnsymbol{somecounter}`](#fnsymbolsomecounter)
* [`\value{somecounter}`](#valuesomecounter)

Інші команди лічильників:

* [`\counterwithin{somecounter}{anothercounter}`](#counterwithinsomecounteranothercounter)
* [`\counterwithout{somecounter}{anothercounter}`](#counterwithoutsomecounteranothercounter)

### Створення та збільшення лічильників

#### \newcounter{somecounter}\[anothercounter]

Використовується для визначення нового лічильника. Другий аргумент, взятий у `[]`, є необов’язковим, але якщо його використано, він визначає `*somecounter*` як новий лічильник, який скидається, коли `*anothercounter*` збільшується. `\newcounter` часто використовується в простішій формі `\newcounter{*somecounter*}` яка створює `*somecounter*` та ініціалізує його значенням 0.

* **Примітка**: Для кожного лічильника, створеного командою `\newcounter` командою, вона *також* визначає команду, яку можна використовувати для верстки значення лічильника. Наприклад, `\newcounter{*mycounter*}` визначає команду з назвою `\the*mycounter*`. Приклад показано в наведеному нижче фрагменті коду LaTeX, який ви можете відкрити в Overleaf як повноцінний документ, скориставшись наданим посиланням:

```latex
\newcounter{mycounter}
\setcounter{mycounter}{42}
Тепер ви можете записати \verb|\themycounter|, щоб отримати \themycounter.
```

[Відкрити цей фрагмент LaTeX в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+newcounter\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewcounter%7Bmycounter%7D%0A%5Csetcounter%7Bmycounter%7D%7B42%7D%0AYou+can+now+write+%5Cverb%7C%5Cthemycounter%7C+to+obtain+%5Cthemycounter.%0A%5Cend%7Bdocument%7D)

Цей приклад дає $$\text{You can now write }\verb|\themycounter|\text{ to obtain 42.}$$

* **Примітка**: Якщо `*mycounter*` вже було визначено, LaTeX видасть помилку `c@mycounter already defined`, як показано в наведеному нижче прикладі, який ви можете відкрити в Overleaf.

```latex
\newcounter{mycounter}
...багато коду... але ми забуваємо і знову записуємо \verb|\newcounter{mycounter}|
\newcounter{mycounter}
```

[Відкрийте цей ***код, що генерує помилку*** в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+newcounter\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewcounter%7Bmycounter%7D%0A...lots+of+code...+but+we+forget+and+write+%5Cverb%7C%5Cnewcounter%7Bmycounter%7D%7C+again%0A%5Cnewcounter%7Bmycounter%7D%0A%5Cend%7Bdocument%7D)

#### \setcounter{somecounter}{number}

Встановлює `*somecounter*` щоб містив значення `*number*`.

* **Примітка**: `*number*` може бути додатним або від’ємним.

Приклад показано в наведеному нижче фрагменті коду LaTeX, який ви можете відкрити в Overleaf як повноцінний документ, скориставшись наданим посиланням:

```latex
\noindent Створіть новий лічильник \texttt{myvar} і присвойте йому значення \texttt{42}.
\vspace{10pt}

\newcounter{myvar}
\setcounter{myvar}{42}

\noindent Запис \verb|\themymar| верстає \texttt{\themyvar}.
\vspace{10pt}

\noindent Далі ми змінимо \texttt{myvar} на \texttt{-42}, записавши \verb|\setcounter{myvar}{-42}|
\setcounter{myvar}{-42}. Тепер запис \verb|\themyvar| виводить \texttt{\themyvar}.
```

[Відкрити цей фрагмент LaTeX в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+newcounter\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnoindent+Create+a+new+counter+%5Ctexttt%7Bmyvar%7D+and+assign+it+the+value+%5Ctexttt%7B42%7D.%0A%5Cvspace%7B10pt%7D%0A%0A%5Cnewcounter%7Bmyvar%7D%0A%5Csetcounter%7Bmyvar%7D%7B42%7D+%0A%0A%5Cnoindent+Writing+%5Cverb%7C%5Cthemymar%7C+typesets+%5Ctexttt%7B%5Cthemyvar%7D.%0A%5Cvspace%7B10pt%7D%0A%0A%5Cnoindent+Next%2C+we%27ll+change+%5Ctexttt%7Bmyvar%7D+to+%5Ctexttt%7B-42%7D%2C+writing+%5Cverb%7C%5Csetcounter%7Bmyvar%7D%7B-42%7D%7C%0A%5Csetcounter%7Bmyvar%7D%7B-42%7D.+Now%2C+writing+%5Cverb%7C%5Cthemyvar%7C+outputs+%5Ctexttt%7B%5Cthemyvar%7D.%0A%5Cend%7Bdocument%7D)

#### \addtocounter{somecounter}{number}

Збільшує лічильник `*somecounter*` на величину `*number*`.

* **Примітка**: `*number*` може бути додатною, щоб збільшити значення лічильника, або від’ємною, щоб зменшити його. Наприклад:

```latex
\addtocounter{somecounter}{-1} % зменшує somecounter на 1
```

Приклад показано в наведеному нижче фрагменті коду LaTeX, який ви можете відкрити в Overleaf як повноцінний документ, скориставшись наданим посиланням:

```latex
\noindent Створіть новий лічильник \texttt{myvar} і присвойте йому значення \texttt{42}.
\vspace{10pt}

\newcounter{myvar}
\setcounter{myvar}{42}

\noindent Запис \verb|\themymar| верстає \texttt{\themyvar}.
\vspace{10pt}

\noindent Далі ми змінимо \texttt{myvar} на \texttt{142}, записавши \verb|\addtocounter{myvar}{100}|\addtocounter{myvar}{100}. Тепер запис \verb|\themyvar| виводить \texttt{\themyvar}.
```

[Відкрити цей фрагмент LaTeX в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+addtocounter\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnoindent+Create+a+new+counter+%5Ctexttt%7Bmyvar%7D+and+assign+it+the+value+%5Ctexttt%7B42%7D.%0A%5Cvspace%7B10pt%7D%0A%0A%5Cnewcounter%7Bmyvar%7D%0A%5Csetcounter%7Bmyvar%7D%7B42%7D+%0A%0A%5Cnoindent+Writing+%5Cverb%7C%5Cthemymar%7C+typesets+%5Ctexttt%7B%5Cthemyvar%7D.%0A%5Cvspace%7B10pt%7D%0A%0A%5Cnoindent+Next%2C+we%E2%80%99ll+change+%5Ctexttt%7Bmyvar%7D+to+%5Ctexttt%7B142%7D+by+writing+%5Cverb%7C%5Caddtocounter%7Bmyvar%7D%7B100%7D%7C%5Caddtocounter%7Bmyvar%7D%7B100%7D.+Now%2C+writing+%5Cverb%7C%5Cthemyvar%7C+outputs+%5Ctexttt%7B%5Cthemyvar%7D.%0A%5Cend%7Bdocument%7D)

#### \stepcounter{somecounter}

Збільшує на 1 `*somecounter*` на 1. Приклад показано в наведеному нижче фрагменті коду LaTeX, який ви можете відкрити в Overleaf як повноцінний документ, скориставшись наданим посиланням:

```latex
Якщо ми створимо новий лічильник, записавши \verb|\newcounter{mycounter}|
\newcounter{mycounter} тоді лічильник \texttt{mycounter} створюється і
ініціалізується нулем, як ви можете побачити, якщо запишете \verb|\themycounter|:
\texttt{mycounter} наразі зберігає: \themycounter.

Якщо тепер ми запишемо \verb|\stepcounter{mycounter}|\stepcounter{mycounter}, то
\verb|\themycounter| тепер містить значення \themycounter.
```

[Відкрити цей фрагмент LaTeX в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+stepcounter\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0AIf+we+create+a+new+counter+by+writing+%5Cverb%7C%5Cnewcounter%7Bmycounter%7D%7C%0A%5Cnewcounter%7Bmycounter%7D+then+the+counter+%5Ctexttt%7Bmycounter%7D+is+created+and+%0Ainitialized+to+zero%2C+as+you+can+see+if+you+write+%5Cverb%7C%5Cthemycounter%7C%3A%0A%5Ctexttt%7Bmycounter%7D+currently+stores%3A+%5Cthemycounter.+%0A%0AIf+we+now+write+%5Cverb%7C%5Cstepcounter%7Bmycounter%7D%7C%5Cstepcounter%7Bmycounter%7D+then+%0A%5Cverb%7C%5Cthemycounter%7C+now+contains+the+value+%5Cthemycounter.%0A%5Cend%7Bdocument%7D)

#### \refstepcounter{somecounter}

Збільшує `*somecounter*` на 1 і робить його видимим для механізму посилань, а також встановлює значення так, щоб ви могли потім використовувати `\label` після цього.

**Приклад використання \refstepcounter**

У наведеному нижче прикладі використано `\refstepcounter` для створення нового лічильника для `прикладу` середовища та використовує `\label` та `\ref` щоб проілюструвати посилання за допомогою `прикладу` змінної лічильника.

```latex
\documentclass{article}

\newcounter{example}[section]
\newenvironment{example}[1][]{\refstepcounter{example}\par\medskip
   \noindent\textbf{Приклад~\theexample. #1} \rmfamily}{\medskip}

\begin{document}
\section{Три приклади}
\begin{example}
Створіть мітку в цьому першому прикладі \verb|\label{ex:1}|\label{ex:1}. Це перший приклад. Лічильник \texttt{example} буде скинуто на початку кожного нового розділу документа \verb|\section|.
\end{example}

\begin{example}
А ось ще один нумерований приклад. Створіть другу \verb|\label{ex:2}|\label{ex:2}, щоб потім послатися на цей приклад. У Прикладі \ref{ex:1} ми читаємо... щось.
\end{example}

\begin{example}
А ось ще один нумерований приклад: використовуйте \verb|\theexample|, щоб верстати номер, який наразі призначено лічильнику \texttt{example}: це  \theexample.
\end{example}

\section{Ще один розділ}
Ми щойно почали новий розділ, а це означає, що лічильник \texttt{example} було встановлено на \theexample.
Ми посилатимемося на приклади з попереднього розділу (Приклади \ref{ex:1} та \ref{ex:2}). Це фіктивний розділ без жодної мети, окрім як містити текст. Лічильник \texttt{section} для цього розділу можна верстати за допомогою \verb|\thesection|: наразі йому призначено значення \thesection.

\begin{example}
Це перший приклад у цьому розділі: лічильник \texttt{example} було збільшено й тепер встановлено на \theexample.
\end{example}
\end{document}
```

[Відкрийте цей `\refstepcounter` приклад в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=An+example+using+refstepcounter\&snip=%5Cdocumentclass%7Barticle%7D%0A%0A%5Cnewcounter%7Bexample%7D%5Bsection%5D%0A%5Cnewenvironment%7Bexample%7D%5B1%5D%5B%5D%7B%5Crefstepcounter%7Bexample%7D%5Cpar%5Cmedskip%0A+++%5Cnoindent%5Ctextbf%7BExample%7E%5Ctheexample.+%231%7D+%5Crmfamily%7D%7B%5Cmedskip%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%5Csection%7BThree+examples%7D%0A%5Cbegin%7Bexample%7D%0ACreate+a+label+in+this+first+example+%5Cverb%7C%5Clabel%7Bex%3A1%7D%7C%5Clabel%7Bex%3A1%7D.+This+is+the+first+example.+The+%5Ctexttt%7Bexample%7D+counter+will+be+reset+at+the+start+of+each+new+each+document+%5Cverb%7C%5Csection%7C.%0A%5Cend%7Bexample%7D%0A%0A%5Cbegin%7Bexample%7D%0AAnd+here%27s+another+numbered+example.+Create+a+second+%5Cverb%7C%5Clabel%7Bex%3A2%7D%7C%5Clabel%7Bex%3A2%7D+to+later+reference+this+one.+In+Example+%5Cref%7Bex%3A1%7D+we+read...+something.+%0A%5Cend%7Bexample%7D%0A%0A%5Cbegin%7Bexample%7D%0AAnd+here%27s+another+numbered+example%3A+use+%5Cverb%7C%5Ctheexample%7C+to+typeset+the+number+currently+assigned+to+the+%5Ctexttt%7Bexample%7D+counter%3A+it+is++%5Ctheexample.%0A%5Cend%7Bexample%7D%0A%0A%5Csection%7BAnother+section%7D%0AWe%27ve+just+started+a+new+section+meaning+that+the++%5Ctexttt%7Bexample%7D+counter+has+been+set+to+%5Ctheexample.++%0AWe%27ll+reference+examples+from+the+previous+section+%28Examples+%5Cref%7Bex%3A1%7D+and+%5Cref%7Bex%3A2%7D%29.++This+is+a+dummy+section+with+no+purpose+whatsoever+but+to+contain+text.+The+%5Ctexttt%7Bsection%7D+counter+for+this+section+can+be+typeset+using+%5Cverb%7C%5Cthesection%7C%3A+it+is++currently+assigned+the+value+of+%5Cthesection.%0A%0A%5Cbegin%7Bexample%7D%0AThis+is+the+first+example+in+this+section%3A+the+%5Ctexttt%7Bexample%7D+counter+has+been+stepped+and+now+set+to+%5Ctheexample.+%0A%5Cend%7Bexample%7D%0A%5Cend%7Bdocument%7D)

**Короткий підсумок коду**

У цьому прикладі нове середовище `прикладу` визначається; це середовище має 3 команди, пов’язані з лічильниками:

* `\newcounter{example}[section]`: Створює новий лічильник з назвою `прикладу` який буде скидатися до 0 щоразу, коли `розділ` лічильник збільшується. Ви можете підставити будь-який інший лічильник замість `розділ` або опустити цей параметр, якщо не хочете, щоб ваш лічильник автоматично скидався.
* `\refstepcounter{example}`: Збільшує `прикладу` лічильник на 1 і робить його видимим для механізму посилань, щоб ви могли використовувати `\label` після цього.
* `\theexample`: Виводить поточне значення лічильника `прикладу`.

Додаткову інформацію про користувацькі середовища див. у [статті про визначення нових середовищ](/latex/uk/komandi/02-environments.md#defining-a-new-environment)

### Доступ до значень лічильників і їх виведення

Наведені нижче пояснення базуються на стандартних налаштуваннях LaTeX до будь-яких змін, внесених пакетами, завантаженими користувачем.

#### \arabic{somecounter}

Вивести подання `*somecounter*` як арабські цифри: 1, 2, 3...

#### \roman{somecounter}

Вивести подання `*somecounter*` як малі римські цифри: i, ii, iii...

* **Примітка**: Якщо `*somecounter*` $$\leq$$ `0` вивід не створюється. Крім того, перетворення *надзвичайно* великих цілих чисел у малі римські цифри може тривати довго — і створює довгу послідовність `m` символів (що представляють число `1000`).
* **ПОРАДА**: Якщо вас цікавить алгоритм, який TeX використовує для перетворення арабських чисел на римські, про це можна прочитати в цій статті про [Алгоритми для римських чисел](https://www.hanshq.net/roman-numerals.html#tex).

#### \Roman{somecounter}

Вивести подання `*somecounter*` як великі римські цифри: I, II, III...

* **Примітка**: Якщо `*somecounter*` $$\leq$$ `0` вивід не створюється. Крім того, перетворення *надзвичайно* перетворення великих цілих чисел на великі римські цифри може тривати довго — і створює довгу послідовність `M` символів (що представляють число `1000`).
* **ПОРАДА**: Якщо вас цікавить алгоритм, який TeX використовує для перетворення арабських чисел на римські, про це можна прочитати в цій статті про [Алгоритми для римських чисел](https://www.hanshq.net/roman-numerals.html#tex).

#### \alph{somecounter}

Вивести подання `*somecounter*` як малу літеру, де a=1, b=2, c=3...

* **Примітка**: `*somecounter*` має бути в діапазоні `1` $$\leq$$ `*somecounter*` $$\leq$$ `26`, інакше це спричинить помилку `! Помилка LaTeX: Лічильник занадто великий.`

#### \Alph{somecounter}

Вивести подання `*somecounter*` як велику літеру, де A=1, B=2, C=3...

* **Примітка**: `*somecounter*` має бути в діапазоні `1` $$\leq$$ `*somecounter*` $$\leq$$ `26`, інакше це спричинить помилку `! Помилка LaTeX: Лічильник занадто великий.`

#### \fnsymbol{somecounter}

Вивести подання `*somecounter*` як символ виноски, де 1 =∗, 2 =†...

* **Примітка**: `*somecounter*` має бути в діапазоні `1` $$\leq$$ `*somecounter*` $$\leq$$ `9`, інакше це спричинить помилку `! Помилка LaTeX: Лічильник занадто великий.`

|                          |                                             |
| ------------------------ | ------------------------------------------- |
| Значення `*somecounter*` | Символ, що верстається командою `\fnsymbol` |
| 1                        | \*                                          |
| 2                        | †                                           |
| 3                        | ‡                                           |
| 4                        | §                                           |
| 5                        | ¶                                           |
| 6                        | ∥                                           |
| 7                        | ∗∗                                          |
| 8                        | ††                                          |
| 9                        | ‡‡                                          |

#### Приклад виведення значень лічильників

Наведений нижче приклад демонструє використання команд `\arabic{*somecounter*}`, `\roman{*somecounter*}`, `\Roman{*somecounter*}`, `\alph{*somecounter*}`, `\Alph{*somecounter*}`, і `\fnsymbol{*somecounter*}`.

```latex
\newcounter{somecounter}
\setcounter{somecounter}{9}
\begin{itemize}
    \item \verb|\arabic{somecounter}| верстає значення \texttt{somecounter} \thesomecounter{} як \arabic{somecounter}
    \item \verb|\roman{somecounter}| верстає значення \texttt{somecounter} \thesomecounter{} як  \roman{somecounter}
    \item \verb|\Roman{somecounter}| верстає значення \texttt{somecounter} \thesomecounter{} як  \Roman{somecounter}
    \item \verb|\alph{somecounter}| верстає значення \texttt{somecounter} \thesomecounter{} як  \alph{somecounter}
   \item \verb|\Alph{somecounter}| верстає значення \texttt{somecounter} \thesomecounter{} як  \Alph{somecounter}
    \item \verb|\fnsymbol{somecounter}| верстає значення \texttt{somecounter} \thesomecounter{} як  \fnsymbol{somecounter}
\end{itemize}
```

[Відкрити цей фрагмент LaTeX в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Converting+counter+values\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewcounter%7Bsomecounter%7D%0A%5Csetcounter%7Bsomecounter%7D%7B9%7D%0A%5Cbegin%7Bitemize%7D%0A++++%5Citem+%5Cverb%7C%5Carabic%7Bsomecounter%7D%7C+typesets+the+%5Ctexttt%7Bsomecounter%7D+value+of++%5Cthesomecounter%7B%7D+as+%5Carabic%7Bsomecounter%7D+%0A++++%5Citem+%5Cverb%7C%5Croman%7Bsomecounter%7D%7C+typesets+the+%5Ctexttt%7Bsomecounter%7D+value+of++%5Cthesomecounter%7B%7D+as++%5Croman%7Bsomecounter%7D%0A++++%5Citem+%5Cverb%7C%5CRoman%7Bsomecounter%7D%7C+typesets+the+%5Ctexttt%7Bsomecounter%7D+value+of++%5Cthesomecounter%7B%7D+as++%5CRoman%7Bsomecounter%7D%0A++++%5Citem+%5Cverb%7C%5Calph%7Bsomecounter%7D%7C+typesets+the+%5Ctexttt%7Bsomecounter%7D+value+of++%5Cthesomecounter%7B%7D+as++%5Calph%7Bsomecounter%7D%0A+++%5Citem+%5Cverb%7C%5CAlph%7Bsomecounter%7D%7C+typesets+the+%5Ctexttt%7Bsomecounter%7D+value+of++%5Cthesomecounter%7B%7D+as++%5CAlph%7Bsomecounter%7D%0A++++%5Citem+%5Cverb%7C%5Cfnsymbol%7Bsomecounter%7D%7C+typesets+the+%5Ctexttt%7Bsomecounter%7D+value+of++%5Cthesomecounter%7B%7D+as++%5Cfnsymbol%7Bsomecounter%7D%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

Цей приклад дає такий вивід:

![Приклад перетворення лічильників у LaTeX](/files/49015b218073e93c304c305b8cd11f12f873cbf8)

#### \value{somecounter}

Призначення цієї команди, як описано в початковому коді LaTeX, — «Для доступу до значення лічильника як числа TeX»: тобто ви використовуєте `\value{somecounter}` її в ситуаціях, коли LaTeX очікує обробити числове значення.

**(Необов’язкові) пояснювальні нотатки щодо команди \value**

Спокусливо думати, що команда `\value{*somecounter*}` буде *безпосереднього* верстає значення `*somecounter*`, але це не так. Вона призначена для використання всередині інших команд для доступу до значення лічильника як числа TeX, на відміну від команди `\thesomecounter` яка виводить друковане подання `*somecounter*`.

У початковому коді LaTeX, `\value` визначається так:

```latex
\def\value#1{\csname c@#1\endcsname}
```

Отже, `\value{*somecounter*}` створює екземпляр внутрішньої керувальної послідовності LaTeX `\c@somecounter` яка містить значення лічильника `*somecounter*`.

**Приклад**

Наведений нижче приклад показує один базовий варіант використання `\value`.

```latex
\noindent Почніть із оголошення двох нових лічильників:
\begin{verbatim}
\newcounter{first}
\newcounter{second}
\end{verbatim}

\newcounter{first}
\newcounter{second}

\noindent Десь пізніше у вашому коді ви встановлюєте їхні значення:
\begin{verbatim}
\setcounter{first}{100}
\setcounter{second}{50}
\end{verbatim}

\setcounter{first}{100}
\setcounter{second}{50}
\noindent Потім ви пишете ще код \LaTeX{}...\vspace{10pt}

\noindent У певний момент нам може знадобитися додати значення лічильника \texttt{second} до лічильника \texttt{first}. Один зі способів це зробити — використати \verb|\value|, щоб отримати \textit{поточне} значення, збережене в лічильнику \texttt{second}:

\begin{verbatim}
\addtocounter{first}{\value{second}}
\end{verbatim}

\addtocounter{first}{\value{second}}\noindent Значення \texttt{first} можна вивести за допомогою \verb|\thefirst|: \thefirst. Ми також можемо написати \verb|\the\value{first}|, що теж верстає \the\value{first}. Однак запис \verb|\value{first}| спричинить помилку \texttt{Відсутнє число, вважається нулем} тому що \LaTeX{} тоді намагається виконати внутрішню команду \verb|\c@first|. Розкоментуйте наведену нижче строку, щоб згенерувати помилку:
\begin{verbatim}
%\value{first}
\end{verbatim}
%\value{first}
```

[Відкрити цей фрагмент коду в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+the+value+command\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnoindent+Start+by+declaring+two+new+counters%3A%0A%5Cbegin%7Bverbatim%7D%0A%5Cnewcounter%7Bfirst%7D%0A%5Cnewcounter%7Bsecond%7D++++%0A%5Cend%7Bverbatim%7D%0A%0A%5Cnewcounter%7Bfirst%7D%0A%5Cnewcounter%7Bsecond%7D%0A%0A%5Cnoindent+Sometime+later+in+your+code+you+set+their+values%3A%0A%5Cbegin%7Bverbatim%7D%0A%5Csetcounter%7Bfirst%7D%7B100%7D%0A%5Csetcounter%7Bsecond%7D%7B50%7D++++%0A%5Cend%7Bverbatim%7D%0A%0A%5Csetcounter%7Bfirst%7D%7B100%7D%0A%5Csetcounter%7Bsecond%7D%7B50%7D++%0A%5Cnoindent+Then+you+write+more+%5CLaTeX%7B%7D+code...%5Cvspace%7B10pt%7D%0A%0A%5Cnoindent+At+some+point+we+might+want+to+add+the+value+of+counter+%5Ctexttt%7Bsecond%7D+to+counter+%5Ctexttt%7Bfirst%7D.+One+way+to+do+that+is+using+%5Cverb%7C%5Cvalue%7C+to+obtain+the+%5Ctextit%7Bcurrent%7D+value+stored+in+the+%5Ctexttt%7Bsecond%7D+counter%3A%0A%0A%5Cbegin%7Bverbatim%7D%0A%5Caddtocounter%7Bfirst%7D%7B%5Cvalue%7Bsecond%7D%7D%0A%5Cend%7Bverbatim%7D%0A%0A%5Caddtocounter%7Bfirst%7D%7B%5Cvalue%7Bsecond%7D%7D%5Cnoindent+The+value+of+%5Ctexttt%7Bfirst%7D+can+be+output+by+%5Cverb%7C%5Cthefirst%7C%3A+%5Cthefirst.+We+can+also+write+%5Cverb%7C%5Cthe%5Cvalue%7Bfirst%7D%7C+which+also+typesets+%5Cthe%5Cvalue%7Bfirst%7D.+However%2C++writing+%5Cverb%7C%5Cvalue%7Bfirst%7D%7C+will+generate+the+error+%5Ctexttt%7BMissing+number%2C+treated+as+zero%7D+because+%5CLaTeX%7B%7D+then+tries+to+execute+the+internal+command+%5Cverb%7C%5Cc%40first%7C.+Uncomment+the+following+line+to+generate+the+error%3A%0A%5Cbegin%7Bverbatim%7D%0A%25%5Cvalue%7Bfirst%7D%0A%5Cend%7Bverbatim%7D%0A%25%5Cvalue%7Bfirst%7D%0A%5Cend%7Bdocument%7D)

Цей приклад дає такий результат:

![Приклад використання команди \value](/files/267bb285922e4368dc884004a090403f90fa2263)

### Інші команди для лічильників

Тут ми описуємо команди `\counterwithin` та `\counterwithout` які походять із [`chngcntr` accents](https://ctan.org/pkg/chngcntr) але тепер інтегровані безпосередньо до LaTeX — див. [LaTeX News, квітень 2018](https://www.latex-project.org/news/latex2e-news/ltnews28.pdf). `chngcntr` [документація пакета](https://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/chngcntr/chngcntr.pdf) робить такі зауваження, які допомагають зрозуміти призначення цих команд:

Увімкнено `\counterwithin`:

> Іноді бажано змінити лічильник, який було визначено за допомогою `\newcounter{<ctr>}` так, ніби його було визначено як `\newcounter{<ctr>}[<within>]`. Пакет надає команду `\counterwithin{<ctr>}{<within>}` яка це виконує.

Увімкнено `\counterwithout`:

> Так само команда `\counterwithout{<ctr>}{<within>}` змінює лічильник, який було створено за допомогою `\newcounter{<ctr>}[<within>]` так, ніби його було створено за допомогою `\newcounter{<ctr>}`.

По суті, ці дві команди надають спосіб зв’язати (`\counterwithin`) або роз’єднати (`\counterwithout`) два лічильники після їх визначення.

**\counterwithin{somecounter}{anothercounter}**

Скидає `*somecounter*` до 0 щоразу, коли `*anothercounter*` збільшується, механізм, який пов’язує два лічильники. Окрім створення зв’язку, ця команда перевизначає те, що верстає `\the*somecounter*`: замість виведення значення лічильника `*somecounter*` воно виводить `<значення іншого лічильника>**.**<значення лічильника>`. Зіркова форма (`\counterwithin*{somecounter}{anothercounter}`) не перевизначає формат виведення `*somecounter*`, як показує наведений нижче приклад — виберіть посилання під кодом, щоб відкрити його в Overleaf:

```latex
\documentclass{article}
\begin{document}
\section{Короткий приклад}
\newcounter{example}
\counterwithin{example}{section}
\newcounter{exampletwo}
\counterwithin*{exampletwo}{section}
\setcounter{example}{100}
\setcounter{exampletwo}{100}
\begin{itemize}
\item \verb|\theexample| верстає \theexample
\item \verb|\theexampletwo| верстає \theexampletwo
\end{itemize}
\end{document}
```

[Відкрийте цей `\counterwithin` приклад в Overleaf](https://www.overleaf.com/docs?engine=\&snip_name=Example+of+starred+version+of+counterwithin\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csection%7BA+short+example%7D%0A%5Cnewcounter%7Bexample%7D%0A%5Ccounterwithin%7Bexample%7D%7Bsection%7D%0A%5Cnewcounter%7Bexampletwo%7D%0A%5Ccounterwithin%2A%7Bexampletwo%7D%7Bsection%7D%0A%5Csetcounter%7Bexample%7D%7B100%7D%0A%5Csetcounter%7Bexampletwo%7D%7B100%7D%0A%5Cbegin%7Bitemize%7D%0A%5Citem+%5Cverb%7C%5Ctheexample%7C+typesets+%5Ctheexample%0A%5Citem+%5Cverb%7C%5Ctheexampletwo%7C+typesets+%5Ctheexampletwo%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

Цей приклад дає такий результат:

![Використання команди \counterwithin](/files/65ac4e7cb4e0b9cc4fde869d695180df2e0b3c55)

Ви можете використовувати `\counterwithin` зі стандартними лічильниками, які надає LaTeX, такими як:

* `розділ`: використовується `\section` команду
* `equation` використовується для `equation` середовище

або зі створеними вами лічильниками.

**Приклад \counterwithin і \counterwithin\***

Наведений нижче код надає більш повний приклад використання `\counterwithin` та `\counterwithin*`; виберіть посилання під кодом, щоб відкрити його в Overleaf:

```latex
\documentclass{article}
\counterwithin{equation}{section}
\newcounter{example}
\counterwithin*{example}{section}
\newenvironment{example}[1][]{%
\stepcounter{example}%
\par\vspace{5pt}\noindent
\fbox{\textbf{Приклад~\thesection.\theexample}}%
\hrulefill\par\vspace{10pt}\noindent\rmfamily}%
{\par\noindent\hrulefill\vrule width10pt height2pt depth2pt\par}
\begin{document}
\section{Перше рівняння}
Деякий вступний текст...
\begin{example}
\begin{equation}
    f(x)=\frac{x}{1+x^2}
\end{equation}
\end{example}

\subsection{Більше деталей}
\begin{example}
Тут ми обговорюємо
\begin{equation}
    f(x)=\frac{x+1}{x-1}
\end{equation}
... але нічого не говоримо
\end{example}

\subsubsection{Ще більше деталей}
\begin{example}
\begin{equation}
    f(x)=\frac{x^2}{1+x^3}
\end{equation}
\begin{equation}
    f(x+\delta x)=\frac{(x+\delta x)^2}{1+(x+\delta x)^3}
\end{equation}
\end{example}

\section{Третє рівняння}
\begin{example}
Наведена нижче функція...
\begin{equation}
    f_1(x)=\frac{x+1}{x-1}
\end{equation}
..є функцією
\begin{equation}
    f_2(x)=\frac{x^2}{1+x^3}
\end{equation}
\begin{equation}
    f_3(x)=\frac{3+ x^2}{1-x^3}
\end{equation}
\end{example}
\end{document}
```

[Відкрийте цей `\counterwithin` приклад в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+of+using+counterwithin\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Ccounterwithin%7Bequation%7D%7Bsection%7D%0A%5Cnewcounter%7Bexample%7D%0A%5Ccounterwithin%2A%7Bexample%7D%7Bsection%7D%0A%5Cnewenvironment%7Bexample%7D%5B1%5D%5B%5D%7B%25%0A%5Cstepcounter%7Bexample%7D%25%0A%5Cpar%5Cvspace%7B5pt%7D%5Cnoindent%0A%5Cfbox%7B%5Ctextbf%7BExample%7E%5Cthesection.%5Ctheexample%7D%7D%25%0A%5Chrulefill%5Cpar%5Cvspace%7B10pt%7D%5Cnoindent%5Crmfamily%7D%25%0A%7B%5Cpar%5Cnoindent%5Chrulefill%5Cvrule+width10pt+height2pt+depth2pt%5Cpar%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csection%7BFirst+equation%7D%0ASome+introductory+text...%0A%5Cbegin%7Bexample%7D%0A%5Cbegin%7Bequation%7D%0A++++f%28x%29%3D%5Cfrac%7Bx%7D%7B1%2Bx%5E2%7D%0A%5Cend%7Bequation%7D%0A%5Cend%7Bexample%7D%0A%0A%5Csubsection%7BMore+detail%7D%0A%5Cbegin%7Bexample%7D%0AHere+we+discuss%0A%5Cbegin%7Bequation%7D%0A++++f%28x%29%3D%5Cfrac%7Bx%2B1%7D%7Bx-1%7D%0A%5Cend%7Bequation%7D%0A...+but+don%27t+say+anything%0A%5Cend%7Bexample%7D%0A%0A%5Csubsubsection%7BEven+more+detail%7D%0A%5Cbegin%7Bexample%7D%0A%5Cbegin%7Bequation%7D%0A++++f%28x%29%3D%5Cfrac%7Bx%5E2%7D%7B1%2Bx%5E3%7D%0A%5Cend%7Bequation%7D%0A%5Cbegin%7Bequation%7D%0A++++f%28x%2B%5Cdelta+x%29%3D%5Cfrac%7B%28x%2B%5Cdelta+x%29%5E2%7D%7B1%2B%28x%2B%5Cdelta+x%29%5E3%7D%0A%5Cend%7Bequation%7D%0A%5Cend%7Bexample%7D%0A%0A%5Csection%7BThird+equation%7D%0A%5Cbegin%7Bexample%7D%0AThe+following+function...%0A%5Cbegin%7Bequation%7D%0A++++f_1%28x%29%3D%5Cfrac%7Bx%2B1%7D%7Bx-1%7D%0A%5Cend%7Bequation%7D%0A..is+a+function%0A%5Cbegin%7Bequation%7D%0A++++f_2%28x%29%3D%5Cfrac%7Bx%5E2%7D%7B1%2Bx%5E3%7D%0A%5Cend%7Bequation%7D%0A%5Cbegin%7Bequation%7D%0A++++f_3%28x%29%3D%5Cfrac%7B3%2B+x%5E2%7D%7B1-x%5E3%7D%0A%5Cend%7Bequation%7D%0A%5Cend%7Bexample%7D%0A%5Cend%7Bdocument%7D)

Цей приклад дає такий результат:

![Використання команди \counterwithin](/files/c3a72446f76b8c825e90244240662b37c3617a99)

**Короткий підсумок коду**

* `\newcounter{example}`: Це створює новий лічильник для використання в нашому середовищі, також званий `прикладу`
* `\counterwithin*{example}{section}`: Це пов’язує наш `прикладу` лічильник із `розділ` лічильником, що використовується всередині `\section` команди: щоразу, коли ми виконуємо `\section` команду,  `прикладу` лічильник скидається до нуля. Зауважте, що ми використали зіркову версію `\counterwithin*` щоб уникнути перевизначення `\theexample`
* Далі ми створюємо нове середовище, яке також називається `прикладу`. Усередині цього середовища ми використовуємо `\stepcounter{example}` щоб збільшити лічильник середовища. Також зауважте, що ми записуємо `\textbf{Приклад~\thesection.\theexample}` щоб вивести **Приклад** `<номер розділу>.<номер прикладу>`

```latex
\newenvironment{example}[1][]{%
\stepcounter{example}%
\par\vspace{5pt}\noindent
\fbox{\textbf{Приклад~\thesection.\theexample}}%
\hrulefill\par\vspace{10pt}\noindent\rmfamily}%
{\par\noindent\hrulefill\vrule width10pt height2pt depth2pt}
```

**\counterwithout{somecounter}{anothercounter}**

`\counterwithout{*somecounter*}{*anothercounter*}` прибирає зв’язок між `*somecounter*` та `*anothercounter*` так, щоб вони були незалежними. Для будь-якої пари лічильників ви можете перемикатися між використанням `\counterwithout` та `\counterwithin`, як показує наведений нижче приклад для `прикладу` та `розділ` лічильників — ви можете відкрити цей приклад в Overleaf, скориставшись посиланням під кодом.

```latex
\section{Перше рівняння}
\begin{example}
\begin{equation}
    f(x)=\frac{x}{1+x^2}
\end{equation}
\end{example}

\subsection{Друге рівняння}
\begin{example}
\begin{equation}
    f(x)=\frac{x+1}{x-1}
\end{equation}
\end{example}
\vspace{6pt}\noindent Зверніть увагу, як лічильник \texttt{example} скидається на початку розділу \ref{sec:n0}.
\section{Третє рівняння}
\label{sec:n0}
\begin{example}
\begin{equation}
    f(x)=\frac{x+1}{x-1}
\end{equation}
\end{example}
\vspace{6pt}\noindent Тут ми написали \verb|\counterwithout{example}{section}|, щоб \texttt{example} більше не скидався на початку розділу. У розділах \ref{sec:n1} та \ref{sec:n2} лічильник \texttt{example} продовжує зростати. \counterwithout{example}{section}
\section{Четверте рівняння}
\label{sec:n1}
\begin{example}
\begin{equation}
    f(x)=\frac{x^2+x^3}{1+x^3}
\end{equation}
\end{example}
\section{П'яте рівняння}
\label{sec:n2}
\begin{example}
\begin{equation}
    f(x,k)=\frac{x^2-x^k}{1+x^3}
\end{equation}
\end{example}
```

[Відкрийте цей `\counterwithout` приклад в Overleaf](<https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+of+using+counterwithout\&snip=\documentclass{article}&#xA;\counterwithin{equation}{section}&#xA;\newcounter{example}&#xA;\counterwithin*{example}{section}&#xA;\newenvironment{example}\[1]\[]{%&#xA;\stepcounter{example}%&#xA;\par\vspace{3pt}\noindent&#xA;\fbox{\textbf{Example~\thesection.\theexample}}%&#xA;\hrulefill\par\vspace{3pt}\noindent\rmfamily}%&#xA;{\par\noindent\hrulefill\vrule+width10pt+height2pt+depth2pt\par}&#xA;\begin{document}&#xA;\section{First+equation}&#xA;\begin{example}&#xA;\begin{equation}&#xA;++++f(x)=\frac{x}{1+x^2}&#xA;\end{equation}&#xA;\end{example}&#xA;&#xA;\subsection{Second+equation}&#xA;\begin{example}&#xA;\begin{equation}&#xA;++++f(x)=\frac{x+1}{x-1}&#xA;\end{equation}&#xA;\end{example}&#xA;\vspace{6pt}\noindent+Note+how+the+\texttt{example}+counter+is+reset+at+the+start+Section+\ref{sec:n0}.+&#xA;\section{Third+equation}&#xA;\label{sec:n0}&#xA;\begin{example}&#xA;\begin{equation}&#xA;++++f(x)=\frac{x+1}{x-1}&#xA;\end{equation}&#xA;\end{example}&#xA;\vspace{6pt}\noindent+Here,+we+wrote+\verb|\counterwithout{example}{section}|+so+that+\texttt{example}+is+no+longer+reset+at+the+start+of+a+section.+In+Sections+\ref{sec:n1}+and+\ref{sec:n2}+the+\texttt{example}+counter+keeps+increasing.+\counterwithout{example}{section}&#xA;\section{Fourth+equation}&#xA;\label{sec:n1}&#xA;\begin{example}&#xA;\begin{equation}&#xA;++++f(x)=\frac{x^2+x^3}{1+x^3}&#xA;\end{equation}&#xA;\end{example}&#xA;\section{Fifth+equation}&#xA;\label{sec:n2}&#xA;\begin{example}&#xA;\begin{equation}&#xA;++++f(x,k)=\frac{x^2-x^k}{1+x^3}&#xA;\end{equation}&#xA;\end{example}&#xA;\end{document}>)

Цей приклад дає такий результат:

![Використання команди counterwithout](/files/46a19b12812c3fbbaa244306b8b1ca83d2dec1c5)

## Приклад

### enumerate

Функція `enumerate` середовище списку використовує чотири *лічильник* змінні, які відстежують поточне значення підпису для кожного рівня:

|            |                                  |
| ---------- | -------------------------------- |
| **Рівень** | **`enumerate`** змінна-лічильник |
| Рівень 1   | `enumi`                          |
| Рівень 2   | `enumii`                         |
| Рівень 3   | `enumiii`                        |
| Рівень 4   | `enumiv`                         |

Ці лічильники можна змінювати за допомогою `\setcounter` команди. Дивіться приклад нижче — який не обов'язково є найкращим рішенням (див. [Overleaf перелічує](/latex/uk/osnovi-latex/04-lists.md) статтю для отримання додаткової інформації):

```latex
Цей приклад показує один зі способів змінити нумерацію списку; тут змінюється значення лічильника \texttt{enumi}, щоб почати нумерацію списку з 4 (воно збільшується командою \verb|\item|):

\begin{enumerate}
\setcounter{enumi}{3}
\item Щось.
\item Щось інше.
\item Ще один елемент.
\item Останній пункт у списку.
\end{enumerate}
```

[Відкрити цей приклад в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Modifying+an+enumerate+counter\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csection%7BIntroduction%7D%0AThis+example+shows+one+way+to+change+the+numbering+of+a+list%3B+here%2C+changing+the+value+of+the+%5Ctexttt%7Benumi%7D+counter+to+start+the+list+numbering+at+4+%28it+is+incremented+by+the+%5Cverb%7C%5Citem%7C+command%29%3A%0A%0A%5Cbegin%7Benumerate%7D%0A%5Csetcounter%7Benumi%7D%7B3%7D%0A%5Citem+Something.%0A%5Citem+Something+else.%0A%5Citem+Another+element.%0A%5Citem+The+last+item+in+the+list.%0A%5Cend%7Benumerate%7D%0A%5Cend%7Bdocument%7D)

Цей приклад дає такий результат:

![Зміна лічильника enumerate](/files/a95c0bd2be362498084bca0b5956fc2b534d2b9d)

## Стандартні лічильники в LaTeX

| Використання               | Назва                                                                                                                 |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| Для структури документа    | <p>- part<br>- chapter<br>- section<br>- subsection<br>- subsubsection<br>- paragraph<br>- subparagraph<br>- page</p> |
| Для плаваючих елементів    | <p>- equation<br>- figure<br>- table</p>                                                                              |
| Для виносок                | <p>- footnote<br>- mpfootnote</p>                                                                                     |
| Для `enumerate` середовище | <p>- enumi<br>- enumii<br>- enumiii<br>- enumiv</p>                                                                   |

## Додаткове читання

Докладніше див.:

* [Середовища](/latex/uk/komandi/02-environments.md)
* [Команди](/latex/uk/komandi/01-commands.md)
* [Списки](/latex/uk/osnovi-latex/04-lists.md)
* [Нумерація сторінок](/latex/uk/formatuvannya/03-page-numbering.md)
* [Розділи та глави](/latex/uk/struktura-dokumenta/01-sections-and-chapters.md)
* [Математичні вирази](/latex/uk/matematika/01-mathematical-expressions.md)
* [Вставлення зображень](/latex/uk/inshi-temi/27-inserting-images.md)
* [Таблиці](/latex/uk/risunki-ta-tablici/01-tables.md)
* [Оформлення іспитів у LaTeX](/latex/uk/specializovani/09-typesetting-exams-in-latex.md)
* [Створення власного пакета](/latex/uk/faili-klasiv/03-writing-your-own-package.md)
* [Створення власного класу](/latex/uk/faili-klasiv/04-writing-your-own-class.md)
* [Не зовсім короткий вступ до LaTeX2ε](http://www.ctan.org/tex-archive/info/lshort/)


---

# 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/uk/formatuvannya/10-counters.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.
