> 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/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` пакет](https://ctan.org/pkg/langsci-avm?lang=en), теперь доступна в TeX Live, что делает ее напрямую доступной через Overleaf. Однако из-за различий в синтаксисе и функциях `avm`примеры, основанные на 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/252de580befc0246ace2e15d578481eeea665da1)

\* Чтобы ознакомиться с 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/ru/shrifty/01-font-sizes-families-and-styles.md) подойдет. Размер шрифта и [начертание шрифта](/latex/ru/shrifty/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/3c5565fa52575961ef4403725e247401f21ce8f8)

\* Чтобы ознакомиться с 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/6f718bbe4f1f10f75af29d947ec2f34b095d4c06)

Команда `\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/fcc027dcf50c3421840cd771eaaee3235999ef2c)

\* Чтобы ознакомиться с 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/ru/shrifty/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/daf84640faa95cb33b3a31a56f7390ea77bcd942)

\* Чтобы ознакомиться с 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/b2ed200f7cfc6cd5fe774a7feb9d8155e022d3b7)   |
| `\[ \]` | ![AVMbrackets.png](/files/54add38b9da584452e500e2326439082f5f448dc) |
| `\< \>` | ![AVMchevrons.png](/files/a2b8af9850024dde8738d0ba6adcccf36673b1fe) |

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

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

* [Это **avm** документация пакета](http://nlp.stanford.edu/manning/tex/avm-doc.pdf)
* [Это **avm.sty** исходный код](http://nlp.stanford.edu/manning/tex/avm.sty)
* [Размеры, семейства и начертания шрифтов](/latex/ru/shrifty/01-font-sizes-families-and-styles.md)
* [Шрифтовые гарнитуры](/latex/ru/shrifty/02-font-typefaces.md)
* [Таблицы](/latex/ru/risunki-i-tablicy/01-tables.md)
* [Скобки и круглые скобки](/latex/ru/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/ru/specializirovannye/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.
