> 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/uk/specializovani/10-attribute-value-matrices.md).

# Матриці атрибутів і значень

У цій статті демонструється верстка матриць атрибутів-значень (AVM), які є практичним способом подання [структур ознак](https://en.wikipedia.org/wiki/Feature_structure) як набору атрибутів та відповідних їм значень.

## Примітки щодо пакетів AVM для LaTeX

У цій статті використовується `avm` пакет, який був переважним вибором для верстки AVM на той час, коли цей матеріал було вперше написано. На жаль, `avm` пакет не розповсюджується через TeX Live, а це означає, що користувачам Overleaf доведеться завантажити копію (`avm.sty`) до своїх проєктів. Щоб вирішити це, [проєкт Overleaf Gallery](https://www.overleaf.com/latex/templates/examples-of-attribute-value-matrices/fnrbcjztvjjv) що супроводжує цю статтю, містить копію `avm` пакет.

Альтернатива до `avm`, а [`langsci-avm` accents](https://ctan.org/pkg/langsci-avm?lang=en), тепер доступна в TeX Live, тож її можна безпосередньо використовувати через Overleaf. Однак через відмінності в синтаксисі та можливостях, `avm`-базовані приклади в цій статті не компілюватимуться з `langsci-avm` і потребуватимуть певного редагування. Див. розділ 4.6 [`langsci-avm` документації](http://mirrors.ctan.org/macros/latex/contrib/langsci-avm/langsci-avm.pdf) для рекомендацій щодо переходу з `avm` на `langsci-avm`.

## Початок роботи

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

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

\begin{document}

\begin{avm}
    \[ cat\|subcat & \<NP$_{it}$, NP$_{\@2}$, S[comp]:\@3\> \\
       content & \[ relation & \bf bother\\
                    bothered & \@2 \\
                    soa-arg  & \@3 \] \]
\end{avm}

\end{document}
```

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

![Матриця атрибутів-значень, верстана в Overleaf за допомогою LaTeX](/files/9c17fca28e7fe095cc96e049c88fe2e1ef51d2c6)

\* Щоб ознайомитися з AVM, відкрийте цей [проєкт Overleaf.](https://www.overleaf.com/project/new/template/26428?id=113292459\&templateName=Example+project+demonstrating+attribute+value+matrices\&latexEngine=pdflatex\&texImage=texlive-full%3A2022.1\&mainFile=)

## Основне використання

Щоб набрати матрицю атрибутів-значень усередині `avm` середовища, потрібно знати кілька команд:

* `\avmfont{\sc}`: змінює шрифт, що використовується в матрицях, у цьому випадку на малі капітелі. Будь-яка інша [сім'я шрифтів](/latex/uk/shrifti/01-font-sizes-families-and-styles.md) підійде. Розмір шрифту та [накреслення шрифту](/latex/uk/shrifti/02-font-typefaces.md) також можна задати тут.
* `\begin{avm}` та `\end{avm}`: ці команди відкривають і закривають середовище, у якому буде створено матрицю атрибутів-значень.
* `\[` та `\]`: виводять квадратні дужки, що обмежують частини матриці. Інші дужки також можна використовувати за допомогою команд `\<`, `\>`, `\{` та `\}`.
* `\\`: вставляє новий рядок.
* `&`: створює поділ на стовпці в межах одного рядка.

Наступний приклад демонструє це:

```latex
\documentclass{article}

\usepackage{avm}
\avmfont{\sc}

\begin{document}
\begin{avm}
    \[ subj & \[ pers & 3 \\
                 num & sg \\
                 gend & masc\\
                 pred & \rm ‘pro’ \]\\

        pred & \rm ‘eat\q<SUBJ, OBJ\q>’\\

                 obj & \[ pers & 3 \\
                 num & pl \\
                 gend & fem \\
                 pred & \rm ‘pro’ \]
        \]
\end{avm}

\end{document}
```

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

![Матриця атрибутів-значень, верстана в Overleaf за допомогою LaTeX](/files/611b3e627c67afec0477a9bfa9e5f4893ee2d556)

\* Щоб ознайомитися з AVM, відкрийте цей [проєкт Overleaf.](https://www.overleaf.com/project/new/template/26428?id=113292459\&templateName=Example+project+demonstrating+attribute+value+matrices\&latexEngine=pdflatex\&texImage=texlive-full%3A2022.1\&mainFile=)

## Невирівняні стовпці

Іноді, коли рядок занадто довгий, зручніше використовувати невирівняні стовпці, щоб покращити вигляд результату:

```latex
\begin{avm}
    \[ \avmspan{system\|local\|content\; \@2} \\
        qstore & \[det & \textnormal{forall} \\
                   restpar & \@2 \[para & \@1 \\
                                   restr & \[reln & \textnormal{book} \\
                                             inst & \@1 \] \] \] \]
\end{avm}
```

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

![Матриця атрибутів-значень, верстана в Overleaf за допомогою LaTeX](/files/a4e2d8fb66251792703ef0cc5bd4d93a91db9156)

Команда `\avmspan{}` вимикає вирівнювання стовпців для свого аргументу, тоді як команда `\;` вставляє горизонтальний пробіл трохи більший за звичайний, створюючи зручний роздільник.

\* Щоб ознайомитися з AVM, відкрийте цей [проєкт Overleaf.](https://www.overleaf.com/project/new/template/26428?id=113292459\&templateName=Example+project+demonstrating+attribute+value+matrices\&latexEngine=pdflatex\&texImage=texlive-full%3A2022.1\&mainFile=)

## Мітки сортування

Можна додавати мітки сортування в кутах AVM. Є два можливі стилі. Перший — виводити мітки всередині матриці:

```latex
\avmsortfont{\it}
\avmvalfont{\it}
\begin{avm}
    \[ \asort{indexed-obj}
       index & \[\asort{index}
                  variable & \@1 \[\asort{variable}
                                    per & 3rd \\
                                    num & sing \\
                                    gend & neut \] \\
                  restriction & \[\asort{psoa}
                                  relation & book \\
                                  instance & \@1 \] \] \]
\end{avm}
```

Цей код створює такий результат:

![Матриця атрибутів-значень, верстана в Overleaf за допомогою LaTeX](/files/ee0e0999d40029c49c031e3a45a8c9fc5958c409)

\* Щоб ознайомитися з AVM, відкрийте цей [проєкт Overleaf.](https://www.overleaf.com/project/new/template/26428?id=113292459\&templateName=Example+project+demonstrating+attribute+value+matrices\&latexEngine=pdflatex\&texImage=texlive-full%3A2022.1\&mainFile=)

У цьому прикладі є три нові команди:

* `\avmsortfont{\it}`: задає тип шрифту для ключів сортування, у цьому випадку курсив, але можна використовувати й інші [стилі та розміри шрифту](/latex/uk/shrifti/01-font-sizes-families-and-styles.md)
* `\avmvalfont{\it}`: задає тип шрифту для значень в AVM, у цьому випадку курсив.
* `\asort{*key*}`: виводить сортування `*key*`.

Також можна накласти мітку сорту на попередній стовпець, як показано в наступному прикладі:

```latex
\avmvalfont{\it}
\avmsortfont{\it}
\begin{avm}
    \sort{indexed-obj}{\[ index & \osort{index}{\[
          variable & \@1 \osort{variable}{\[  per & 3rd \\
                                              num & sing \\
                                              gend & neut \]} \\
          restriction & \osort{psoa}{\[relation & book \\
                                       instance & \@1 \]} \]} \]}
\end{avm}
```

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

![Матриця атрибутів-значень, верстана в Overleaf за допомогою LaTeX](/files/0e3dbb0e8f7c21e7233001a1b0acdc25229cb9fe)

\* Щоб ознайомитися з AVM, відкрийте цей [проєкт Overleaf.](https://www.overleaf.com/project/new/template/26428?id=113292459\&templateName=Example+project+demonstrating+attribute+value+matrices\&latexEngine=pdflatex\&texImage=texlive-full%3A2022.1\&mainFile=)

Є дві нові команди:

* `\sort{*label*}`: виводить `*label*`, займаючи місце в стовпці, де вона з'являється.
* `\osort{*label*}`: накладає *label* без перевірки накладань або наявного місця.

## Довідковий посібник

Доступні дужки в **avm** пакет.

| Команда | Вивід                                                               |
| ------- | ------------------------------------------------------------------- |
| `\{ \}` | ![AVMbraces.png](/files/45218c8b0b7228eb6e7c724a028ad74139d6b769)   |
| `\[ \]` | ![AVMbrackets.png](/files/6d3f2a49cc1f30c9361548528a6efe8d844776ac) |
| `\< \>` | ![AVMchevrons.png](/files/3fdd4b17341d567ef4c02834ce5e55d905866537) |

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

Для отримання додаткової інформації див.

* [Функція **avm** документація пакета](http://nlp.stanford.edu/manning/tex/avm-doc.pdf)
* [Функція **avm.sty** вихідний код](http://nlp.stanford.edu/manning/tex/avm.sty)
* [Розміри, гарнітури та стилі шрифтів](/latex/uk/shrifti/01-font-sizes-families-and-styles.md)
* [Гарнітури шрифтів](/latex/uk/shrifti/02-font-typefaces.md)
* [Таблиці](/latex/uk/risunki-ta-tablici/01-tables.md)
* [Дужки та круглі дужки](/latex/uk/matematika/03-brackets-and-parentheses.md)


---

# 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/uk/specializovani/10-attribute-value-matrices.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.
