# Меню, яке може визначити користувач

## Налаштування

У &kile; передбачено підтримку меню, визначених користувачем. Ці меню буде показано серед основних пунктів меню &kile;. Налаштувати такі меню можна за допомогою діалогового вікна налаштовування &kile;: Параметри Налаштувати Kile Меню користувача.

Налаштування меню користувача
Налаштування меню користувача

Передбачено два варіанти розташування меню:

- пункт меню Меню користувача основного меню програми між пунктами LaTeX і Майстер та пункт майстра налаштування Змінити меню користувача у меню Майстер;

  Меню користувача у головному меню
  Меню користувача у головному меню

- розташувати обидва пункти у нижній частині меню LaTeX.

  Меню користувача як частина меню «LaTeX»
  Меню користувача як частина меню «LaTeX»

Раніше створені користувачем мітки зі старих версій &kile; буде автоматично перетворено на нове придатне до налаштовування користувачем меню. Мітки буде збережено до файла з назвою `usertags.xml`. Як і всі інші файли визначення меню, цей файл зберігатиметься у локальному каталозі меню користувача &kile;: `KILE_APP_DIR/usermenu/`, наприклад `/home/user/.kde/share/apps/kile/usermenu/`.

Ви можете використовувати різні файли визначення меню для виконання різних завдань. Для встановлення або внесення змін до файла визначення меню скористайтеся майстром меню: Майстер Змінити меню користувача або LaTeX Змінити меню користувача.

## Майстер

Ви можете створювати меню або вносити зміни до вже створених меню за допомогою зручного майстра налаштовування меню користувача, доступ до якого можна отримати за допомогою пункту меню LaTeX Змінити меню користувача.

Майстер створення меню користувача
Майстер створення меню користувача

У лівій частині вікна майстра ви побачите поточну ієрархію меню. Подібно до звичайного меню, передбачено три різновиди пунктів меню:

- звичайні пункти меню, з якими пов’язано певні дії;

- підменю, які містять інші пункти меню;

- роздільники, які надають структурованості спискам пунктів меню.

Щоб внести зміни до меню, скористайтеся шістьма кнопками, розташованими ліворуч. Доступ до додаткових дій можна отримати за допомогою контекстного меню вже створених пунктів меню.

Визначена користувачем ієрархія меню
Визначена користувачем ієрархія меню

З кожним звичайним пунктом меню пов’язується дія одного з трьох типів. Кожен з типів має власні атрибути, які можна встановити:

- Текст: у &kile; передбачено можливість створення власних міток. Мітка подібна до кнопки, натискання на яку призводить до виконання певної команди або вписування якогось поширеного фрагмента тексту. Таким фрагментом, наприклад, може бути речення `Доброго дня, долучаю до цього листа...`. Цю мітку буде вставлено у поточну позицію курсора після виклику відповідного пункту (див. вище). Можна використовувати метасимволи (див. ).

- Вставити вміст файла: вставити повністю вміст вказаного файла.

  Вставлення вмісту файла
  Вставлення вмісту файла

- Виконати зовнішню програму: дані, виведені програмою може бути вставлено до відкритого документа. У командному рядку програми можна використати метасимвол `%M` замість позначеного фрагмента тексту, який буде збережено до тимчасового файла. `%M` позначає назву цього тимчасового файла.

  Виконання зовнішньої програми
  Виконання зовнішньої програми

Якщо майстрові не вистачатиме якихось важливих даних, відповідні пункти меню буде позначено червоним кольором. Таке позначення може означати, що файл не знайдено:

Файла не існує
Файла не існує

або що не знайдено заголовка пункту меню, замість нього буде показано знаки питання, `???`.

Не вказано заголовка пункту меню
Не вказано заголовка пункту меню

Якщо ви відкриєте контекстне меню такого «червоного» пункту меню, ви побачите додатковий пункт меню з даними щодо помилки, пов’язаної з пунктом.

Додаткові дані
Додаткові дані

Додаткову інформацію можна отримати за допомогою кнопки Що це?, підказки для якої передбачено для більшості віджетів.

## Заповнювачі

### Вставлення тексту

Передбачено декілька замінників, якими ви можете скористатися у ваших мітках: `%C`, `%B`, `%M`, `%E`, `%R` and `%T`.

- `%C`: це позиція, куди буде пересунуто курсор після вставки визначеного користувачем теґу.

  Розташування курсора (%C)
  Розташування курсора (%C)

- `%B`: буде замінено позначкою-кружечком (див. ).

  Позначка (%B)
  Позначка (%B)

- `%M`: буде замінено позначеним фрагментом тексту.

  Позначений фрагмент тексту (%M)
  Позначений фрагмент тексту (%M)

- `%E`: позначає ширину відступу тексту у середовищі.

  Відступ тексту у середовищі (%E)
  Відступ тексту у середовищі (%E)

- `%R`: відкриває діалогове вікно посилання, за допомогою якого ви зможете вибрати вже визначену мітку. За допомогою цього замінника можна створити посилання на вже визначену мітку, яку ви можете вибрати зі спадного списку (див. також LaTeX Посиланняref або LaTeX Посиланняpageref).

  Посилання (%R)
  Посилання (%R)

- `%T`: відкриває діалогове вікно посилань списку літератури для вибору вже визначеного пункту списку. Подібно до використання пункту меню LaTeX Посиланняcite буде показано контекстне меню всіх визначених пунктів списку літератури.

  Ключі цитування (%T)
  Ключі цитування (%T)

Розгляньмо інший приклад з макросом, подібним до `\frac{%M}{%C}`. Спочатку ми позначаємо у нашому тексті число, наприклад `42`. Після цього викликаємо макрос і отримуємо `\frac{42}{}`, причому курсор буде розташовано всередині другої пари дужок.

### Вставлення вмісту файла

Якщо вам потрібно вставити вміст якогось текстового файла, ви можете скористатися тими самими заповнювачами-замінниками.

### Виконання програми

Якщо вам потрібно виконати зовнішню програму, у командному рядку розпізнаватиметься лише замінник `%M`, який відповідає позначеному фрагменту тексту. Цей фрагмент буде збережено до тимчасового файла, а замінник `%M` замінено на назву цього файла.

Виконати зовнішню програму (%M)
Виконати зовнішню програму (%M)

Ще одним замінником є `%S`. Цей замінник буде замінено на повну назву поточного документа без шляху до нього. Ця назва складатиметься з усіх назви файла аж до, але не включаючи, останній символ «.».

## Параметр

Для більшості пунктів меню передбачено додаткові параметри, призначення яких зрозуміло з назви. Якщо якимись з параметрів не можна скористатися для дії певного типу, відповідні пункти параметрів буде вимкнено.

Параметр меню користувача
Параметр меню користувача

Ось один з прикладів для виконання зовнішньої програми:

Приклад параметра
Приклад параметра

Як можна бачити, викликається скрипт мовою `perl`. Цей скрипт оброблятиме поточний позначений фрагмент тексту. Щоб уникнути помилок, позначено пункт Потребує позначення фрагмента тексту. Виведені цим скриптом дані буде вставлено у текст (Вставити дані, виведені вибраною програмою). Вставленими даними буде замінено поточний позначений фрагмент (Замінити позначений фрагмент тексту). Після вставляння фрагмент тексту позначено не буде.

Звичайно ж, ви можете також викликати власні програми або скрипти. Наприклад, можете позначити список із чисел, відокремлених пробілами, і викликати скрипт або програму мовою Perl, яка перетворить позначені дані на код &latex; для матриці. Якими б не були ваші ідеї, ви можете реалізувати їх за допомогою пункту меню користувача.

Приклад параметра 2
Приклад параметра 2

## Файли визначення меню

Під час роботи програми ви можете встановлювати різні меню для виконання різних завдань. У відповідь на виклик майстра меню користувача буде завантажено поточний файл визначення меню. Якщо ви внесете до нього зміни і закриєте діалогове вікно за допомогою кнопки Гаразд, внесені вами зміни буде збережено і встановлено як нове меню користувача. Закриття діалогового вікна за допомогою кнопки Скасувати призведе до відкидання всіх внесених змін.

Файли визначення меню
Файли визначення меню

Крім того, ви можете зберегти змінений файл до каталогу меню користувача або завантажити інший файл визначення меню і встановити його. Всі файли визначення меню мають зберігатися у локальному каталозі меню користувача &kile;: `KILE_APP_DIR/usermenu/`.

Ознайомтеся з файлом прикладу визначення меню, `example.xml`, щоб дізнатися більше про пункти меню та параметри цих пунктів.