%----------------------------------------
%                TkTeXEditor                |
%----------------------------------------

\documentclass[12pt]{article}
\usepackage[koi8-r]{inputenc}
\usepackage[english,russian]{babel}

\title{Расширенный \LaTeX{} редактор}
\author{Сергей Калинин, Константин Михайленко}
\date{}

\begin{document}
\maketitle

\section{Назначение}
Программа предназначена для создания и редактирования файлов в рамках издательской системы \TeX{} (\LaTeX).
\subsection{Описание функций}
Ниже представлен список основных функций редактора:

Одновременное редактирование нескольких файлов.

Создание нового документа из шаблона.

Отображение структуры документа ввиде дерева.

Отображение ввиде дерева включенных внешних документов.

Вывод списка меток и ссылок.

Подсветка синтаксиса.

Поиск и замена текста.

Автодобивка команд.

Преобразование .tex файла в dvi, ps, pdf, html (при помощи внешних программ) и просмотр полученного
документа.

Отображение процесса компиляции и преобразования документа и вывод ошибок.

Печать исходного кода.

Настраиваемые панели инструментов.

Вставка настраиваемых готовых конструкций кода.

Интерактивная проверка орфографии (при помощи ispell).

Автоматический перенос строк при достижении определенной в конфигурации длинны.

Авто-сохранение документа через определённый промежуток времени.

Сохранение позиции редактирования в открытых файлах при выходе из программы и возобновление
редактирования этих файлов при следующем запуске программы.

Возможность подключения дополнительных внешних программ.

Настраиваемые цветовые схемы и графические темы панелей инструментов.

Подключение внешнего редактора.

Простой механизм локализации интерфейса программы. В данный момент редактор локализован на русском
и английском языках.

Предпросмотр математических формул и любых частей текста а также сохранение их как изображения.

Поддерживается множество кодировок и перекодировка из одной в другую.

Автоматическое подключение нужной кодировки при использовании декларации пакета \emph{inputenc}.

\subsection{Необходимое ПО}
Программа написана на интерпретируемом языке Tcl/Tk поэтому Вам потребуется установить
интерпретатор языка tcl. Его Вы можете найти у себя в дистрибутиве (для unix-подобных систем) или
взять в сети Internet (для систем Windows). Например http://www.activestate.com
Также необходимо установить набор графических компонент BWidget (он входит в состав activeTCL)
Для полноценной работы с \LaTeX-документами необходимо установить дистрибутив издательской системы
\LaTeX{} (например TeTeX или MkiTeX). Для просмотра и преобразования документов желательно установить
пакеты tetex-dvips, ghostscript, ImageMagic, latex2html, xdvi, acroread (xpdf) - все , или почти
все эти программы присутствуют в последних дистрибутивах линукс (например ALT Linux Master).
О настройке данных программ будет рассказано ниже.

\section{Начало работы}
Программа запускается командой \emph{/usr/bin/tle} - если она установлена из rpm-пакета, или
запускается файл \emph{tle.tcl} из дистрибутивного комплекта.
После запуска в домашнем каталоге создается рабочая папка \emph{.tle} содержащая конфигурационные
файлы.

Далее можете приступать к редактированию файлов. Можно открыть уже существующие документы
\textit{Файл - Открыть} либо создавать новые \textit{Файл - Новый}. Программа, также,
поддерживает создание документов из заранее заданных шаблонов \textit{Файл - Новый - Создать из
шаблона}, которые, Вы можете создавать самостоятельно, в появившимся диалоге выбирете нужный шаблон
и введите требуемое имя и нажмите кнопку \textit{Создать}

Tk \LaTeX{} Editor позволяет редактировать множество файлов, переключаясь между закладками
редактора.

Сохранение документа производиться нажатием кнопки на панели инструментов, либо в меню \emph{Файл -
Сохранить} либо нажатием сочетания клавиш \emph{Ctrl - S}, либо автоматически, согласно установкам
в конфигурационном файле.


\section{Рaбота с документом}

\subsection{Редактирование}

При редактировании текста доступны режимы ввода и замены символов, переключаемые клавишей
\emph{Insert}. При вводе текста есть возможность ограничить длину строки текста определённым
количеством символов, которое задаётся в конфигурационном файле, так же как и включение и
выключение режима автопереноса. Т.е. при достижении длины строки текста в заданное количество
символов, редактор автоматически начнет ввод со следующей строки.
Также есть возможность перемещения курсора на строку с заданным номером - \emph{Ctrl - G}.

\subsubsection{Вставка тегов}
Для облегчения и ускорения процесса вёрстки документа редактор TLE позволяет вставлять готовые
конструкции, используя настраиваемые панели инструментов.
Например конструкции вида \verb"\textsl{Редактирование}" можно вставлять, предварительно выделив
требуемый текст, нажав соответствующую кнопку панели инструментов. Также при добавлении элементов
списка \verb"\item" есть возможность автоматической вставки тега \(следующего элемента списка\) в
начале следующей строки при нажатии клавиши \emph{Enter} в конце ввода строки текста.

Также, есть возможность добивки команд по начальным буквам - для этого, необходимо, после набора
первых буква команды, нажать \emph{ALT-C} и, из появившегося списка, выбрать требуемое.
Списки команд соответствуют пакетам системы \LaTeX. И могут быть дополнены пользователем.

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

\subsubsection{Поиск и замена текста}

Редактор TLE позволяет производить поиск и поиск с заменой текста в открытом документе. Данные
функции доступны через меню \emph{Редактирование} или при нажатии клавиш \emph{Ctrl-F} и
\emph{Ctrl-R} соответственно. Для простого поиска ведется история.

\subsection{Перекодирование}
TLE поддерживает работу с множеством различных кодировок. При открытии \LaTeX-документа происходит
считывание данных о кодировке документа, если используется пакет \emph{inputenc}. Если документ не
содержит данных о кодовой странице то он будет отображен с использованием системной кодировки. В
случае не совпадения кодовой страницы документа и Вашей системы документ будет отображён
некорректно. Но это можно исправить, указав кодировку документа через меню \emph{Вид -
Кодировка}.

Если Вы хотите сохранить документ в кодировке отличной от исходной то необходимо выбрать нужную
кодовую страницу через меню \emph{Документ - Кодировка} и файл будет перекодирован при сохранении.

В случае если Вы используете пакет \emph{inputenc} но не правильно указали кодировку документа в
описании пакета либо текущая кодировка документа не соответствует требуемой, при сохранении будет
выдано предупреждение о не соответствии кодовых страниц.

\subsection{Предпросмотр текста и формул}
При наличии в системе дополнительных программ, становится доступна функция предварительного
просмотра математических формул и произвольных частей документа.
Для осуществления данной операции необходимо в редактируемом документе выделить текст формулы, либо
её часть, и нажать сочетание клавиш \emph{Alt-V}. Также можно выбрать пункт \emph{Показать формулу}
в меню \emph{Редактирование} или при помощи всплывающего меню.

Для произвольного фрагмента текста операция идентична предыдущей с той лишь разницей, что необходимо
нажать \emph{Alt-B} или меню \emph{Редактирование - Показать Текст}

\subsection{Проверка орфографии}
Для проверки орфографии используется программа ispell.
Вам необходимо выбрать в меню \emph{Документ - Орфография} или нажать кнопку в панели инструментов.
В появившимся диалоге надо выбрать требуемый словарь и режим проверки - весь документ или с
текущей позиции. При несовпадении слов в тексте и в словаре Вам будет предложен список возможных
вариантов из которых можно выбрать нужный и заменить неправильное слово.

\subsection{Преобразование в различные форматы}
Для преобразования файла в различные форматы используются внешние программы.
Команды для их запуска описаны в конфигурационном файле tle.conf:

\begin{verbatim}
set convert_cmd(dvi) "latex"
set convert_cmd(ps) "dvips -Pwww -j0 -ta4 -o %fileName.ps %fileName.dvi"
set convert_cmd(pdf) "ps2pdf %name.ps"
set convert_cmd(html) "latex2html -no_navigation -split 0"
\end{verbatim}

Если в команде встречается макрос \emph{\%fileName} то программа подставит вместо него имя текущего
файла без расширения.

Вызов команд производиться как через меню \textit{Документ} - \textit{Преобразовать} так и через
панель инструментов.
Разница заключается лишь в том, что при вызове команды через меню будет вызван диалог, в котором
можно изменить опции командной строки, заданной по умолчанию.
А при вызове команды через панель инструментов будет использована последняя заданная команда для
операции преобразования.

\subsection{Предварительный просмотр документа}
После преобразования документа станет доступна возможность просмотра полученного результата.
Команды для просмотра заданы в конфигурационном файле tle.conf, аналогично и командам конвертации.

\begin{verbatim}
## PREVIEW ##
set preview_cmd(dvi) "xdvi"
set preview_cmd(ps) "gv"
set preview_cmd(pdf) "acroread"
set preview_cmd(html) "mozilla"
\end{verbatim}

Вызвать команды просмотра можно как через меню \textit{Документ} - \textit{Предварительный просмотр}
так и при помощи кнопок на панели инструментов.

\section{Настройка}

\subsection{Конфигурационный файл}

\textbf{Локализация}

\emph{set locale "en"} - установка языка интерфейса программы

\textbf{Временные файлы}

\emph{set backup(create) "Yes"} - создание резервных копий файлов

\emph{set backup(del) "No"} - удалять резервные копии

\emph{set backup(autosave) "Yes"} - автосохранение документа

\textbf{Встроенная Помощь}

\emph{set help(encode) "koi8-r"} - язык файлов помощи

\textbf{Параметры для ispell}

\emph{set ispell\_lib /usr/lib/ispell}

\emph{set ispell\_startindex "1.0"}

\textbf{Рабочие каталоги}

каталог для временных файлов

\begin{verbatim} set dir(tmp) [file join $env(HOME) tmp]
\end{verbatim}

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

\begin{verbatim} set dir(doc) [file join $env(HOME) doc my]
\end{verbatim}

\textbf{Таймеры в миллисекундах}

\emph{set timers(refresh) 60000} - время автообновления структуры документа

\emph{set timers(autosave) 300000} - время автосохранения документа

\textbf{Настройки Интерфейс}

\emph{set gui(geometry) "750x550+0+0"} - установка геометрии основного окна

\emph{set gui(tabsLabel) "top"} - расположение заголовков закладок "top" или "bottom"

\emph{set theme "default" }- тема для панелей инструментов "default" или "stroke"

\textbf{Установка шрифтов}

\emph{set font(normal) "Arial 10 normal roman"} - нормальный шрифт интерфейса

\emph{set font(bold) "Arial 10 bold roman"} - жирный шрифт интерфейса

\textbf{Установка цветовых схем}

\emph{set color(selectbg) "\#55c4d1"} - цвет выделенной области

\emph{set color(bg) "\#bbbbbb"} - фон элементов интерфейса

\emph{set color(editBg) "\#cccccc"} - фон элементов редактирования


\emph{set color(editFg) "\#000000"} - цвет шрифта элементов редактирования

\emph{set color(editTitleNormal) "\#000000"} - цвет заголовка закладки редактора нормальный

\emph{set color(editTitleModify) "\#0021ff"} - цвет заголовка закладкиредактора изменённый

\textbf{Подсветка текста}

\emph{set color(procName) "\#0021ff"} - процедуры

\emph{set color(operator) "\#0000a8"} - операторы

\emph{set color(keyWord) "\#0000a8"} - ключевые слова

\emph{set color(param) "\#6a0082" }- параметры

\emph{set color(subParam) "\#008282"} - подпараметры

\emph{set color(comments) "\#9b9b9b"} - коментарий

\emph{set color(var) "\#e50000"} - переменная


\emph{set color(string) "\#168400"} - строка заключённая в кавычки

\emph{set color(brace) "\#d33434"} - скобка

\emph{set color(braceBG) "\#000000"} - фон подсвеченной скобки

\emph{set color(braceFG) "\#00feff"} - цвет подсвеченной скобки

\emph{set color(percent) "\#a500c6"} - знак процента

\emph{set color(bindKey) "\#a500c6"} - ключи

\textbf{Рельеф кнопок и элементов интерфейса}

доступны flat, groove, raised, ridge, solid, sunken or link

\emph{set relief(btn) link} - кнопки

доступны flat, groove, raised, ridge, solid, or sunken

\emph{set relief(menu) groove }- меню

\textbf{Включение панелей инструментов}

При добавлении своей панели инструментов необходимо прописать её в конфигурационном файле в формате
\textit{tool(toolbar\_file\_name) flag}
где flag = 0 - скрыть, 1- показать

\emph{set tool(main) 1} - основная панель

\emph{set tool(insert) 1} - панель для вставки элементов

\emph{set tool(math) 0} - математическая панель

\emph{set tool(format) 1} - панель форматирования

\textbf{Установки редактора}

\emph{set font(editNormal) "fixed"} - нормальный шрифт

\emph{set font(editBold) "fixed"} - полужирный шрифт

\emph{set editor(extern) "No"} - использовать внешний редактор

\emph{set editor(prog) "/usr/bin/emacs"} - внешний редактор

\emph{set editor(wrap) "word"} - автоперенос слов при отображении текста, доступно none, word or char

\emph{set editor(strWrap) "Yes"} - автоперенос текста при редактировании

\emph{set editor(strLen) 100} - количество символов в строке

\textbf{Опции преобразования документа и просмотра}

\emph{\%fileName} - имя текущего файла

\emph{\%dirName} - имя текущего каталога

\textbf{Преобразование latex в dvi}

\emph{set convert\_cmd(dvi) "latex"}

\textbf{Преобразование dvi в ps (PostScript)}

\emph{set convert\_cmd(ps) "dvips -Pwww -j0 -ta4 -o \%dirName/\%fileName.ps
\%dirName/\%fileName.dvi"}

\textbf{Преобразование ps в pdf}

\emph{set convert\_cmd(pdf) "ps2pdf \%dirName/\%fileName.ps"}

\textbf{Преобразование latex в html}

\emph{set convert\_cmd(html) "latex2html -no\_navigation -split 0"}

\textbf{Преобразование ps в графическое изображение}

\emph{set convert\_cmd(img) "convert"}

\textbf{Просмотр результатов преобразования}

\emph{set preview\_cmd(dvi) "xdvi"}

\emph{set preview\_cmd(ps) "gv"}

\emph{set preview\_cmd(pdf) "acroread"}

\emph{set preview\_cmd(html) "mozilla"}

\textbf{Параметры отображения формул и частей текста}

\emph{set render(res) "150x150"} - разрешение картинки

\emph{set render(format) "gif"} - формат файла изображения

\emph{set render(bg) "white"} - цвет фона

\emph{set render(fg) "black"} - цвет шрифта

\emph{set render(trans) 0} - включение прозрачности

\emph{set render(aa) 1} - включение антиалиасинга


\subsection{Панелей инструментов}
Вы можете самостоятельно настраивать панели инструментов, т.е. добавлять кнопки и меню.
Описание панелей инструментов (тул-баров) храниться в каталоге \texttt{share/gui/toolbar/}

\subsubsection{Описание функций}
Для команд определяемых пользователем есть несколько функций для добавления тэгов в текст.

\begin{description}
\item[\textit{\textbf{AddTextFont}}]~--- добавляет тэги вида <<\verb"\tiny{}">>.
Формат вызова функции
\begin{verbatim}
     AddTextFont Имя_Тэга
\end{verbatim}
\item[\textit{\textbf{AddTextDouble}}]~--- добавляет тэги вида <<\verb"\begin{center}" \ldots \verb"\end{center}">>.
\begin{verbatim}
     AddTextDouble Начальный_Тег Наименование конечный_Тег
\end{verbatim}
\item[\textit{\textbf{AddTextCommand}}]~--- для добавления простых тэгов вида <<\verb"\beta">>.
\begin{verbatim}
     AddTextCommand Имя_Тэга
\end{verbatim}
\end{description}
В командах начальный слэш следует опускать, он добавляется автоматически

\subsubsection{Наименование файла}
Для создания новой панели инструментов создайте в каталоге \texttt{toolbar} файл с любым именем без
расширения кроме main (это зарезервированное слово под основную панель)

\subsubsection{Формат файла}
Строки начинающиеся на <<\verb"#">> являются комментарием и игнорируются так же как и пустые строки

Для создания меню:
\begin{verbatim}
     ключевое_слово иконка "Текст подсказки"
\end{verbatim}

Для создания команд в меню:
\begin{verbatim}
     ключевое_слово "команда" "Текст подсказки" иконка
\end{verbatim}

Параметр \textit{иконка} не является обязательным если он не указан то в меню будет вставлен текст
если указан - то изображение

Для создания кнопки:
\begin{verbatim}
     ключевое_слово "команда" Иконка "Текст подсказки"
\end{verbatim}

\subsubsection{Пример}
\begin{verbatim}
menu font_width.gif "Font type" {
    cmd "AddTextFont texttt" "Typewriter Typeset"
    imagecmd "AddTextFont textit" "Typewriter Typeset" file.gif
    cmd separator
}
button "AddTextFont emph" font_emph.gif "Emphasise"
\end{verbatim}

Здесь
\texttt{menu}, \texttt{button}, \texttt{cmd}, \texttt{imagecmd}~--- ключевые слова для создания
соотвественно меню, кнопки меню и кнопки с изображением;
\texttt{cmd~separator}~--- добавление в меню разделителя


\section{"Горячие" клавиши}

\emph{Ctrl + A} - Сохранить файл под другим именем.

\emph{Ctrl + C} - Команда копирует выделенный в окне редактора текст в буфер обмена.

\emph{Ctrl + F} - Поиск заданного выражения в тексте.

\emph{Ctrl + G} - Перейти к строке с заданным номером.

\emph{Ctrl + N} - Создать новый файл. Команда вызывает диалог создания файла.

\emph{Ctrl + O} - Открыть файл.

\emph{Ctrl + P} - Печать файла (кода).

\emph{Ctrl + Q} - Выход.

\emph{Ctrl + R} - Поиск и замена заданного выражения в тексте.

\emph{Ctrl + S} - Сохранить файл. Сохраняется файл, который открыт в текущем окне редактора.

\emph{Ctrl + T} - Поменять местами два символа, стоящих до и после курсора.

\emph{Ctrl + U} - Перемещает курсор на соответствующую открытую или закрытую скобку.

\emph{Ctrl + V} - Вставка фрагмента текста из буфера обмена, скопированного предыдущей командой.

\emph{Ctrl + W} - Закрыть файл. Команда закрывает файл открытый в текущем окне редактора.

\emph{Ctrl + X} - Вырезать выделенный фрагмент текста в буфер обмена.

\emph{Ctrl + Z} - Отменить операцию

\emph{Ctrl + PageUp} - Переключение закладок (окон редактора) назад (к предыдущему открытому файлу).

\emph{Ctrl + PageDown} - Переключение закладок (окон редактора) вперед (к следующему открытому файлу).

\emph{F1} - Вызов системы помощи по программе и по языку. Если в тексте выделить команду и нажать
данную клавишу то будет выведена на экран подсказка по этой команде.

\emph{F2} - Разделение окна редактора

\emph{F3} - Повторный поиск, команда работает с последним введенным выражением в диалоговом окне
поиска

\emph{F5} - Компиляция файла в DVI формат

\emph{F6} - Конвертирование DVI файла в PS.

\emph{F7} - Конвертирование DVI файла в PDF.

\emph{Alt + T} - Предпросмотр выделенного участка текста

\emph{Alt + C} - Автодобивка команд.

\emph{Alt + F} - Предпросмотр математической формулы

\end{document}






cnt ghbdt





