Initial commit

This commit is contained in:
svk28 2017-07-13 12:45:37 +03:00
commit 87496f7fb0
446 changed files with 14655 additions and 0 deletions

330
CHANGELOG Executable file
View File

@ -0,0 +1,330 @@
######################################################
# Tk LaTeX Editor
# Distributed under GNU Public License
# Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru
# Home page: http//conero.lrn.ru
######################################################
1.0.3
21/09/2004
- Fixed work with directory and files included brakespace into names
- Image thumbnails support now was stable =)
16/09/2004
- Added thumbnails support into text widget for \includegraphics - unstable
- Fixed preview bugs
24/08/2004
- Fixed bug with differents beetwen system encoding and LaTeX encoding
- Added encode.lst where writing encoding equivalent
- Fixed scroling text window
1.0.2
20/04/2004
- Word wrapping fixed (when cursor-arrow pressed)
- Added users command files like as toolbar files but without "button" command (~/.tle/gui/hotkeys)
- Fixed duble lines into toolbar-menus
27/02/2004
- Fix problem with close debug node
- Fix problem with many included files
1.0.1
09/10/2003
- Fix closed file if opened included files (\input, \include)
- Fix problem with finding tags like \section*{}
08/10/2003
- Fix problem with close inserted files
26/09/2003
- Fix bug with create new doc from template
- Fixed bugs with tree selection get
- Fixed bug with node rise procedure
14/04/2003
- Added "Insert curent date" command
1.0.0
06/02/2003
- Fixed some error with Text Reneder procedure
- Fixed error with reading toolbar files
27/01/2003
- Added HotKeys setup in toolbar files
- Small change spellcheck dialog
- Change GUI of "Create new file from template" procedure
- Change text and formulas rendering procedure - now reading current document header
and used all needed package and instructions
- Added removing selected text into other document (file) and include them with \include{}
- Added saving selected text as file
- Added saving selected text as image
- Added users working directories, now tle reading user defined files after main files:
command - for user defined command list
gui/toolbar - for user defined toolbars
modules - for user module files
tenmplate - for user defined template files
- Added new popup menus for selected text
- Added "Select All" and "Unselect All" in "Edit" menu
10/01/2003
- Changed preview text and formulas keys Alt-T and Alt-F
- Changed tabbar rised if file was closed
- Some changes with FilesTree
- Changed NoteBook tab switcher now used "Ctrl-PgUp" and "Ctrl+PgDown"
- Fixed error with delete file declaration from \input{file} if file was opened in editor
- Fixed refresh structure if changed \input{} \include{} files
- Fixed error with opened included files if them location in different directory
09/01/2003
- Some fixes in Encoding procedure
- Change encoding clipboard
- Fixed error with editing file after close any file
- Fixed incorrect search on structure tree
- Change documentation
- Change compile and preview procedure with included files (\iput{})
08/01/2003
- Fixed some error with \input \include declaration if file dosn't exists
- Added creating new file in current dir
- Added selected text rendering procedure and convert them into image
- Changed tle.conf file - added new parameters
03/01/2003
- Mathematical formulas preview added
01/01/2003
- Added popup menus for file, text and tabs
- Added readline procedure for compile process
- Some bugs fixed
31/12/2002
- Chage GUI replace static scrollbar on dynamic
- Added NoteBook Tabs Specifies the side where to place the label of the pages into tle.conf "gui(tabsLabel)"
30/12/2002
- Command line support usage> tle you_doc_file.tex
- Multi encoding support added
0.2.5
17/12/2002
- Help dialog (F1 key) fixed
- F5 (convert to dvi), F6 (convert to ps), F7 (convert to pdf) keys fixed
09/12/2002
- Fixed error with bookmarks file if file was remove
- Remove "Print..." and "Preview" from File menu
02/12/2002
- Fixed error with %dirName macros
- Added new function AddTextMath - for include math mode (changed /gui/toolbar/math)
0.2.4
20/11/2002
- Added %dirName macros for converting command in tle.conf file
19/11/2002
- Fixed error with refresh structure if editing file was closed
- Added command line dialog for converting option, runing from menu
- Fixed memmory leaks in timers
18/11/2002
- Added view full path to edit file in main window title
- Added autosave opened files
- Added autorefresh document structure
- Change gui/toolbar/main toolbar file
- Added mouse wheel support into Labels List
- Added new commands files in lib/command/
15/11/2002
- Added \ref{} and \pageref{} tags into label tree
- Added \input{} and \include{} tags into files tree
10/11/2002
- Added theme support for toolbar icons
- Added theme Stroke (by Const)
- Added Separator command for toolbars files
- Change relief variable - added relief(btn) for buttons and relief(menu) for menu buttons
- Added main window geometry setting into tle.conf
- Rename work directory ~/.tle
- Reorganize menu - remove "Make" menu and added submenu into "Document" menu
- New external programms (modules) checking procedure
0.2.3
04/11/2002
- Fixed error with "Insert image" procedure (thanks Igor Didkovsky <ididkovsky@mail.ru>)
- Added temporary files deleted procedure
- Update README file
28/10/2002
- Remove "locale" variable, now used system locale
0.2.2
25/10/2002
- Added new comman list - more then 1850 commands (main_cmd.lst) (by Const)
21/10/2002
- Fixed AutoWraping string if length = $editor(strLen) and string have't space
0.2.1
18/10/2002
- Added latex2html support
- Stored toolbar on/off status into tle.conf
- Added few botton into "main" toolbar
0.2.0
17/10/2002
- Overwrite procedure added (Insert press)
- Open file dialog added path to last opened file directory
- Fixed Close unsaved file procedure ("Cancel" button press)
01/10/2002
- Fixed correctly location files on save procedure
17/09/2002
- Fixed On/Off toolbar into "View" menu
16/09/2002
- Change highlight procedure (comments tag removing now)
13/09/2002
- Now working files from any location
- Added error highlightning and location in text widget
04/09/2002
- Saving files on close TLE
- Remember opened files and cursor position on close TLE and open them on start TLE in next time
- Change color tab title if file was modified
0.1.10
15/07/2002
- Added word wrapping for actual string size
0.1.9
28/06/2002
- Small GUI chages (toolbar buttons view)
0.1.8
21/06/2002
- Added GUI coloring (by Constantin Mikhailenko)
20/06/2002
- Fixed "Close"/"Save AS"/"Undo"/"Preview" proceduires if could't opened files
0.1.7
29/05/2002
- Fix some error in autocomplit procedure
28/05/2002
- Added support commands like "section{}" into autocomplitition procedure
16/05/2002
- Added HELP dialog
23/05/2002
- Added AutoComplitition procedure
0.1.6
15/05/2002
- Fixed problem with loading external modules
0.1.5
08/05/2002
- Added BackUp file created procedure
07/05/2002
- Added external modules support (tkcvs,tkdiff)
- Added label navigation
0.1.3
30.04/2002
- Create Config file tle.conf
- Fixed small bugs with key press event
- Added many mathematical symbols (by Const) in toolbar
29/04/2002
- Fixed PageTab procedure for Ctrl+M key
- Fixed calling Replace Dialog from menu
0.1.1
27/04/2002
- Fixed Edit Menu errors
- Fixed Create New File procedure
26/04/2002
- Toolbar fixed
0.0.12
24/04/2002
- Added spellcheck procedure (thanks Vitus)
0.0.11
23/04/2002
- Added Insert Table dialog and procedure
- Fixed Refresh Document structure tree
0.0.9
17/04/2002
- Fixed structure navagation procedure
0.0.6
16/04/2002
- Some bugs fixed in highligtning procedure
- Add Structure Tree navigator
- Add status bar, cursor position, file attributes
- Add Insert Section, Subsection, e.t.c, dialog
- Fixed bug into Add Enumerate and Itemaze procedures
0.0.5
11/04/2002
- Added Document Structure Viewer
- Added Included Package dialog
0.0.4
09/04/2002
- Added toolbar and many command
- Fix comment highlightning
0.0.1
03/04/2002
- Beginning the project

8
COPYING Executable file
View File

@ -0,0 +1,8 @@
######################################################
# Tk LaTeX Editor
# Distributed under GNU Public License
# Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru
# Home page: http//conero.lrn.ru
######################################################

8
INSTALL Executable file
View File

@ -0,0 +1,8 @@
######################################################
# Tk LaTeX Editor
# Distributed under GNU Public License
# Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru
# Home page: http//conero.lrn.ru
######################################################

17
KNOWBUG Executable file
View File

@ -0,0 +1,17 @@
######################################################
# Tk LaTeX Editor
# Distributed under GNU Public License
# Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru
# Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru
######################################################
еслт я использую нестандартный пакет
(который кладу в тот же каталог, где и редактируемый файл),
препросмотр -- естественно -- не работает, ругается...

39
README Executable file
View File

@ -0,0 +1,39 @@
######################################################
# Tk LaTeX Editor
# Distributed under GNU Public License
# Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru
# Home page: http//conero.lrn.ru
######################################################
1. ABOUT
Tk LaTeX Editor is a powerful LaTeX editor. It supports code highlighting, a document structure navigator, a project and file manager, spellchecking, command autocompletion, convert to PS/PDF/HTML support, and much more.
2. REQUIREMENTS
For LINUX (Unix)
Tcl/Tk http://www.tcl-tk.org
BWidget http://sourceforge.net/projects/tcllib
TeTeX
For WINDOWS
ActiveTCL http://tcl.activestate.com
MiKTeX http://www.miktex.org
GhostScript http://www.cs.wisc.edu/~ghost/
3. INSTALL
Install any requirements on your system.
Unpack archive and execute tle.tcl
4. CREDITS
Sergey Kalinin (aka Banzaj) - main project programmer and coordinator
banzaj@lrn.ru http://conero.lrn.ru
Constantin I Mikhailenko (aka Const) const@mail.ru

11
THANKS Executable file
View File

@ -0,0 +1,11 @@
#########################################################
# Tk LaTeX Editor
# Distributed under GNU Public License
# Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru
# Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru
#########################################################
Belimov Dmitri <dimon@megalink.ru>
Igor Didkovsky <ididkovsky@mail.ru> http://langos.lrn.ru
Oleh Nykyforchyn <nick@pu.if.ua>

44
TODO Executable file
View File

@ -0,0 +1,44 @@
######################################################
# Tk LaTeX Editor
# Distributed under GNU Public License
# Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru
# Home page: http//conero.lrn.ru
######################################################
рекурсивное обновление струткуры для всех открытых вложенных файлов
Сделать проверку на наличие пакетов включенных в тексте на этапе открытия документа
20. Установка курсора в положение где найдена ошибка при компиляции!!!
folding
Скролинг в окне автодобивки с клавиатуры
Обработка кликов мыши в окне автодобивки и клавиш управления курсором
3. better support for the labels feature - include support for the bibliography environment & the \bibitem \cite... commands.
структура
|->start.tex
|-> file1.tex
|-> file1-1.tex
работаю с файлом 1-1
перескакиваю в start внести исправления, сохраняю его, возвращаюсь в 1-1, компилю -- ругается. тупо смотрю. потом умно смотрю. потом замечаю, что структура стала
|-> start.tex
| |-> file1.tex
|-> file1-1.tex
Перескакиваю в файл 1 -- структура магическим образом восстанавливается ;)
и изображения формул

37
TODO_v2 Executable file
View File

@ -0,0 +1,37 @@
######################################################
# Tk LaTeX Editor
# Distributed under GNU Public License
# Author: Sergey Kalinin (aka BanZaj) banzaj@lrn.ru
# Copyright (c) "CONERO lab", 2005, http://conero.lrn.ru
######################################################
Список задач для второй версии программы
1. Работа с деревом
- единая процедура для вставки нод
-- параметры {
fileFullPath - полное имя файла
}
- обработка вложенности документов (документы сложной структуры)
2. текстовый виджет
- списки отмены\повтора {
.txt -undo true - режим отмены\повтора
.txt -autoseparators true - атоматическое разделение символов для undo
.txt edit redo - повтор
.txt edit undo - отмена
bind .txt <KeyPress> {.txt edit separator} - флаг для режима отмены\повтора
}
- поиск по регулярным выражениям {
.txt search -regexp
в диалог поиска вставить вызов tkregexp и возможность экспорта созданного выражения в строку поиска
далог отображения результатов поиска (или кнопку навигации по ним
(использовать переменную varName, содержащую список индексов [.txt search -count VarName] )
}
3. Работа с файлами
- выбор нескольких файлов при открытии {
tk_getOpenFile -multiple
}

8
config.tcl Executable file
View File

@ -0,0 +1,8 @@
######################################################
# Inventory DataBase
# Distributed under GNU Public License
# Author: Sergey Kalinin (BanZaj) banzaj@altlinux.ru
# Copyright (c) "Dal Telecom Int", 2005, http://conero.lrn.ru
######################################################
set dbname inventory

68
doc/tle_api_guide.tex Executable file
View File

@ -0,0 +1,68 @@
%----------------------------------------
% TkTeXEditor |
%----------------------------------------
\documentclass[12pt]{article}
\usepackage[koi8-r]{inputenc}
\usepackage[english,russian]{babel}
\usepackage{graphicx}
\begin{document}
\title{Tk \LaTeX Editor Programming Guide}
\maketitle
\author{Sergey Kalinin (aka BanZaj) 17/06/2002}
\section{Подключение модуля}
Для загрузки нового модуля необходимо файл скрипта (filename.tcl) разместить в каталоге lib/modules/. Файл будет загружен автоматически при старте программы.
\section{Глобальные переменные}
\subsection{Расположение файлов}
Для описания каталогов используется массив переменных \textit{dir}:
\begin{itemize}
\item dir(mod) - Каталог с модулями программы (modules) (сдесь и далее в скобках указано значение по умолчанию)
\item dir(gui) - файлы настройки панелей инструментов (gui)
\item dir(img) - каталог изображений (img)
\item dir(msg) - каталог сообщений (msg), используется для локализации пользовательского интерфейса программы
\item dir(tmpl) - шаблоны документов (template)
\item dir(work) - рабочий каталог (~/.tktexeditor)
\end{itemize}
\subsection{Определение шрифтов}
Для определения шрифтов для интерфейса и редактора используется массив переменных \textit{}:
\begin{itemize}
\item font(normal) - Обычный шрифт
\item font(bold) - жирный шрифт
\item font(editNormal) - обычный шрифт в редакторе
\item font(editBold) - жирный шрифт в редакторе
\end{itemize}
\subsection{Определение цветовой гаммы}
Для определения цветовой гаммы интерфейса и подсветки кода в редакторе определен массив \textit{color}
\subsubsection{Остальные переменные}
\begin{itemize}
\item \textit{tree} - имя Tree виджета
\item \textit{nb} - имя NoteBook виджета редактра
\item \textit{treeStruct} - имя Tree для структуры документа
\item \textit{lblList} - имя списка меток
\item \textit{module()} - массив переменных содержащий полные имена внешних модулей (см lib/modules/module.tcl)
\item files() - массив переменных с именами открытых файлов
\item \textit{activeFile} - имя активной ноды
Например для извлечения имени активного файла необходимо :
\begin{verbatim}
if {$activeFile == ""} {return} <-- проверка
set text "$nb.f$activeFile.f.text" <-- имя текстового виджета
set fullPath [lindex $files($activeFile) 0] <-- полный путь к файлу
\end{verbatim}
\end{itemize}
\end{document}

145
doc/tle_api_guide/index.html Executable file
View File

@ -0,0 +1,145 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!--Converted with LaTeX2HTML 2K.1beta (1.57)
original version by: Nikos Drakos, CBLU, University of Leeds
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Tk LATEXEditor Programming Guide</TITLE>
<META NAME="description" CONTENT="Tk LATEXEditor Programming Guide">
<META NAME="keywords" CONTENT="tle_api_guide">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-r">
<META NAME="Generator" CONTENT="LaTeX2HTML v2K.1beta">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="tle_api_guide.css">
</HEAD>
<BODY >
<H1 ALIGN="CENTER">Tk L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>XEditor Programming Guide</H1>
<P ALIGN="CENTER"><STRONG>Sergey Kalinin (aka BanZaj) 17/06/2002</STRONG></P>
<H1><A NAME="SECTION00010000000000000000">
ðÏÄËÌÀÞÅÎÉÅ ÍÏÄÕÌÑ</A>
</H1>
<P>
äÌÑ ÚÁÇÒÕÚËÉ ÎÏ×ÏÇÏ ÍÏÄÕÌÑ ÎÅÏÂÈÏÄÉÍÏ ÆÁÊÌ ÓËÒÉÐÔÁ (filename.tcl) ÒÁÚÍÅÓÔÉÔØ × ËÁÔÁÌÏÇÅ lib/modules/. æÁÊÌ ÂÕÄÅÔ ÚÁÇÒÕÖÅÎ Á×ÔÏÍÁÔÉÞÅÓËÉ ÐÒÉ ÓÔÁÒÔÅ ÐÒÏÇÒÁÍÍÙ.
<P>
<H1><A NAME="SECTION00020000000000000000">
çÌÏÂÁÌØÎÙÅ ÐÅÒÅÍÅÎÎÙÅ</A>
</H1>
<H2><A NAME="SECTION00021000000000000000">
òÁÓÐÏÌÏÖÅÎÉÅ ÆÁÊÌÏ×</A>
</H2>
äÌÑ ÏÐÉÓÁÎÉÑ ËÁÔÁÌÏÇÏ× ÉÓÐÏÌØÚÕÅÔÓÑ ÍÁÓÓÉ× ÐÅÒÅÍÅÎÎÙÈ <I>dir</I>:
<UL>
<LI>dir(mod) - ëÁÔÁÌÏÇ Ó ÍÏÄÕÌÑÍÉ ÐÒÏÇÒÁÍÍÙ (modules) (ÓÄÅÓØ É ÄÁÌÅÅ × ÓËÏÂËÁÈ ÕËÁÚÁÎÏ ÚÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ)
</LI>
<LI>dir(gui) - ÆÁÊÌÙ ÎÁÓÔÒÏÊËÉ ÐÁÎÅÌÅÊ ÉÎÓÔÒÕÍÅÎÔÏ× (gui)
</LI>
<LI>dir(img) - ËÁÔÁÌÏÇ ÉÚÏÂÒÁÖÅÎÉÊ (img)
</LI>
<LI>dir(msg) - ËÁÔÁÌÏÇ ÓÏÏÂÝÅÎÉÊ (msg), ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÌÏËÁÌÉÚÁÃÉÉ ÐÏÌØÚÏ×ÁÔÅÌØÓËÏÇÏ ÉÎÔÅÒÆÅÊÓÁ ÐÒÏÇÒÁÍÍÙ
</LI>
<LI>dir(tmpl) - ÛÁÂÌÏÎÙ ÄÏËÕÍÅÎÔÏ× (template)
</LI>
<LI>dir(work) - ÒÁÂÏÞÉÊ ËÁÔÁÌÏÇ (&nbsp;/.tktexeditor)
</LI>
</UL>
<P>
<H2><A NAME="SECTION00022000000000000000">
ïÐÒÅÄÅÌÅÎÉÅ ÛÒÉÆÔÏ×</A>
</H2>
äÌÑ ÏÐÒÅÄÅÌÅÎÉÑ ÛÒÉÆÔÏ× ÄÌÑ ÉÎÔÅÒÆÅÊÓÁ É ÒÅÄÁËÔÏÒÁ ÉÓÐÏÌØÚÕÅÔÓÑ ÍÁÓÓÉ× ÐÅÒÅÍÅÎÎÙÈ :
<UL>
<LI>font(normal) - ïÂÙÞÎÙÊ ÛÒÉÆÔ
</LI>
<LI>font(bold) - ÖÉÒÎÙÊ ÛÒÉÆÔ
</LI>
<LI>font(editNormal) - ÏÂÙÞÎÙÊ ÛÒÉÆÔ × ÒÅÄÁËÔÏÒÅ
</LI>
<LI>font(editBold) - ÖÉÒÎÙÊ ÛÒÉÆÔ × ÒÅÄÁËÔÏÒÅ
</LI>
</UL>
<P>
<H2><A NAME="SECTION00023000000000000000">
ïÐÒÅÄÅÌÅÎÉÅ Ã×ÅÔÏ×ÏÊ ÇÁÍÍÙ</A>
</H2>
äÌÑ ÏÐÒÅÄÅÌÅÎÉÑ Ã×ÅÔÏ×ÏÊ ÇÁÍÍÙ ÉÎÔÅÒÆÅÊÓÁ É ÐÏÄÓ×ÅÔËÉ ËÏÄÁ × ÒÅÄÁËÔÏÒÅ ÏÐÒÅÄÅÌÅÎ ÍÁÓÓÉ× <I>color</I>
<P>
<H3><A NAME="SECTION00023100000000000000">
ïÓÔÁÌØÎÙÅ ÐÅÒÅÍÅÎÎÙÅ</A>
</H3>
<UL>
<LI><I>tree</I> - ÉÍÑ Tree ×ÉÄÖÅÔÁ
</LI>
<LI><I>nb</I> - ÉÍÑ NoteBook ×ÉÄÖÅÔÁ ÒÅÄÁËÔÒÁ
</LI>
<LI><I>treeStruct</I> - ÉÍÑ Tree ÄÌÑ ÓÔÒÕËÔÕÒÙ ÄÏËÕÍÅÎÔÁ
</LI>
<LI><I>lblList</I> - ÉÍÑ ÓÐÉÓËÁ ÍÅÔÏË
</LI>
<LI><I>module()</I> - ÍÁÓÓÉ× ÐÅÒÅÍÅÎÎÙÈ ÓÏÄÅÒÖÁÝÉÊ ÐÏÌÎÙÅ ÉÍÅÎÁ ×ÎÅÛÎÉÈ ÍÏÄÕÌÅÊ (ÓÍ lib/modules/module.tcl)
</LI>
<LI>files() - ÍÁÓÓÉ× ÐÅÒÅÍÅÎÎÙÈ Ó ÉÍÅÎÁÍÉ ÏÔËÒÙÔÙÈ ÆÁÊÌÏ×
</LI>
<LI><I>activeFile</I> - ÉÍÑ ÁËÔÉ×ÎÏÊ ÎÏÄÙ
îÁÐÒÉÍÅÒ ÄÌÑ ÉÚ×ÌÅÞÅÎÉÑ ÉÍÅÎÉ ÁËÔÉ×ÎÏÇÏ ÆÁÊÌÁ ÎÅÏÂÈÏÄÉÍÏ :
<PRE>
if {$activeFile == ""} {return} &lt;-- ÐÒÏ×ÅÒËÁ
set text "$nb.f$activeFile.f.text" &lt;-- ÉÍÑ ÔÅËÓÔÏ×ÏÇÏ ×ÉÄÖÅÔÁ
set fullPath [lindex $files($activeFile) 0] &lt;-- ÐÏÌÎÙÊ ÐÕÔØ Ë ÆÁÊÌÕ
</PRE>
<P>
</LI>
</UL>
<P>
<H1><A NAME="SECTION00030000000000000000">
ï ÜÔÏÍ ÄÏËÕÍÅÎÔÅ ...</A>
</H1>
<STRONG>Tk L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>XEditor Programming Guide</STRONG><P>
This document was generated using the
<A HREF="http://www-dsed.llnl.gov/files/programs/unix/latex2html/manual/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2K.1beta (1.57)
<P>
Copyright &#169; 1993, 1994, 1995, 1996,
<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>,
Computer Based Learning Unit, University of Leeds.
<BR>
Copyright &#169; 1997, 1998, 1999,
<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>,
Mathematics Department, Macquarie University, Sydney.
<P>
The command line arguments were: <BR>
<STRONG>latex2html</STRONG> <TT>-no_navigation -split 0 /home/kalinin/projects/tcl/tle/doc/tle_api_guide.tex</TT>
<P>
The translation was initiated by on 2002-12-26
<BR><HR>
<ADDRESS>
2002-12-26
</ADDRESS>
</BODY>
</HTML>

13
doc/tle_api_guide/labels.pl Executable file
View File

@ -0,0 +1,13 @@
# LaTeX2HTML 2K.1beta (1.57)
# Associate labels original text with physical files.
1;
# LaTeX2HTML 2K.1beta (1.57)
# labels from external_latex_labels array.
1;

View File

@ -0,0 +1,30 @@
/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
.MATH { font-family: "Century Schoolbook", serif; }
.MATH I { font-family: "Century Schoolbook", serif; font-style: italic }
.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
/* implement both fixed-size and relative sizes */
SMALL.XTINY { font-size : xx-small }
SMALL.TINY { font-size : x-small }
SMALL.SCRIPTSIZE { font-size : smaller }
SMALL.FOOTNOTESIZE { font-size : small }
SMALL.SMALL { }
BIG.LARGE { }
BIG.XLARGE { font-size : large }
BIG.XXLARGE { font-size : x-large }
BIG.HUGE { font-size : larger }
BIG.XHUGE { font-size : xx-large }
/* heading styles */
H1 { }
H2 { }
H3 { }
H4 { }
H5 { }
/* mathematics styles */
DIV.displaymath { } /* math displays */
TD.eqno { } /* equation-number cells */
/* document-specific styles come next */

View File

@ -0,0 +1,145 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!--Converted with LaTeX2HTML 2K.1beta (1.57)
original version by: Nikos Drakos, CBLU, University of Leeds
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Tk LATEXEditor Programming Guide</TITLE>
<META NAME="description" CONTENT="Tk LATEXEditor Programming Guide">
<META NAME="keywords" CONTENT="tle_api_guide">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-r">
<META NAME="Generator" CONTENT="LaTeX2HTML v2K.1beta">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="tle_api_guide.css">
</HEAD>
<BODY >
<H1 ALIGN="CENTER">Tk L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>XEditor Programming Guide</H1>
<P ALIGN="CENTER"><STRONG>Sergey Kalinin (aka BanZaj) 17/06/2002</STRONG></P>
<H1><A NAME="SECTION00010000000000000000">
ðÏÄËÌÀÞÅÎÉÅ ÍÏÄÕÌÑ</A>
</H1>
<P>
äÌÑ ÚÁÇÒÕÚËÉ ÎÏ×ÏÇÏ ÍÏÄÕÌÑ ÎÅÏÂÈÏÄÉÍÏ ÆÁÊÌ ÓËÒÉÐÔÁ (filename.tcl) ÒÁÚÍÅÓÔÉÔØ × ËÁÔÁÌÏÇÅ lib/modules/. æÁÊÌ ÂÕÄÅÔ ÚÁÇÒÕÖÅÎ Á×ÔÏÍÁÔÉÞÅÓËÉ ÐÒÉ ÓÔÁÒÔÅ ÐÒÏÇÒÁÍÍÙ.
<P>
<H1><A NAME="SECTION00020000000000000000">
çÌÏÂÁÌØÎÙÅ ÐÅÒÅÍÅÎÎÙÅ</A>
</H1>
<H2><A NAME="SECTION00021000000000000000">
òÁÓÐÏÌÏÖÅÎÉÅ ÆÁÊÌÏ×</A>
</H2>
äÌÑ ÏÐÉÓÁÎÉÑ ËÁÔÁÌÏÇÏ× ÉÓÐÏÌØÚÕÅÔÓÑ ÍÁÓÓÉ× ÐÅÒÅÍÅÎÎÙÈ <I>dir</I>:
<UL>
<LI>dir(mod) - ëÁÔÁÌÏÇ Ó ÍÏÄÕÌÑÍÉ ÐÒÏÇÒÁÍÍÙ (modules) (ÓÄÅÓØ É ÄÁÌÅÅ × ÓËÏÂËÁÈ ÕËÁÚÁÎÏ ÚÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ)
</LI>
<LI>dir(gui) - ÆÁÊÌÙ ÎÁÓÔÒÏÊËÉ ÐÁÎÅÌÅÊ ÉÎÓÔÒÕÍÅÎÔÏ× (gui)
</LI>
<LI>dir(img) - ËÁÔÁÌÏÇ ÉÚÏÂÒÁÖÅÎÉÊ (img)
</LI>
<LI>dir(msg) - ËÁÔÁÌÏÇ ÓÏÏÂÝÅÎÉÊ (msg), ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÌÏËÁÌÉÚÁÃÉÉ ÐÏÌØÚÏ×ÁÔÅÌØÓËÏÇÏ ÉÎÔÅÒÆÅÊÓÁ ÐÒÏÇÒÁÍÍÙ
</LI>
<LI>dir(tmpl) - ÛÁÂÌÏÎÙ ÄÏËÕÍÅÎÔÏ× (template)
</LI>
<LI>dir(work) - ÒÁÂÏÞÉÊ ËÁÔÁÌÏÇ (&nbsp;/.tktexeditor)
</LI>
</UL>
<P>
<H2><A NAME="SECTION00022000000000000000">
ïÐÒÅÄÅÌÅÎÉÅ ÛÒÉÆÔÏ×</A>
</H2>
äÌÑ ÏÐÒÅÄÅÌÅÎÉÑ ÛÒÉÆÔÏ× ÄÌÑ ÉÎÔÅÒÆÅÊÓÁ É ÒÅÄÁËÔÏÒÁ ÉÓÐÏÌØÚÕÅÔÓÑ ÍÁÓÓÉ× ÐÅÒÅÍÅÎÎÙÈ :
<UL>
<LI>font(normal) - ïÂÙÞÎÙÊ ÛÒÉÆÔ
</LI>
<LI>font(bold) - ÖÉÒÎÙÊ ÛÒÉÆÔ
</LI>
<LI>font(editNormal) - ÏÂÙÞÎÙÊ ÛÒÉÆÔ × ÒÅÄÁËÔÏÒÅ
</LI>
<LI>font(editBold) - ÖÉÒÎÙÊ ÛÒÉÆÔ × ÒÅÄÁËÔÏÒÅ
</LI>
</UL>
<P>
<H2><A NAME="SECTION00023000000000000000">
ïÐÒÅÄÅÌÅÎÉÅ Ã×ÅÔÏ×ÏÊ ÇÁÍÍÙ</A>
</H2>
äÌÑ ÏÐÒÅÄÅÌÅÎÉÑ Ã×ÅÔÏ×ÏÊ ÇÁÍÍÙ ÉÎÔÅÒÆÅÊÓÁ É ÐÏÄÓ×ÅÔËÉ ËÏÄÁ × ÒÅÄÁËÔÏÒÅ ÏÐÒÅÄÅÌÅÎ ÍÁÓÓÉ× <I>color</I>
<P>
<H3><A NAME="SECTION00023100000000000000">
ïÓÔÁÌØÎÙÅ ÐÅÒÅÍÅÎÎÙÅ</A>
</H3>
<UL>
<LI><I>tree</I> - ÉÍÑ Tree ×ÉÄÖÅÔÁ
</LI>
<LI><I>nb</I> - ÉÍÑ NoteBook ×ÉÄÖÅÔÁ ÒÅÄÁËÔÒÁ
</LI>
<LI><I>treeStruct</I> - ÉÍÑ Tree ÄÌÑ ÓÔÒÕËÔÕÒÙ ÄÏËÕÍÅÎÔÁ
</LI>
<LI><I>lblList</I> - ÉÍÑ ÓÐÉÓËÁ ÍÅÔÏË
</LI>
<LI><I>module()</I> - ÍÁÓÓÉ× ÐÅÒÅÍÅÎÎÙÈ ÓÏÄÅÒÖÁÝÉÊ ÐÏÌÎÙÅ ÉÍÅÎÁ ×ÎÅÛÎÉÈ ÍÏÄÕÌÅÊ (ÓÍ lib/modules/module.tcl)
</LI>
<LI>files() - ÍÁÓÓÉ× ÐÅÒÅÍÅÎÎÙÈ Ó ÉÍÅÎÁÍÉ ÏÔËÒÙÔÙÈ ÆÁÊÌÏ×
</LI>
<LI><I>activeFile</I> - ÉÍÑ ÁËÔÉ×ÎÏÊ ÎÏÄÙ
îÁÐÒÉÍÅÒ ÄÌÑ ÉÚ×ÌÅÞÅÎÉÑ ÉÍÅÎÉ ÁËÔÉ×ÎÏÇÏ ÆÁÊÌÁ ÎÅÏÂÈÏÄÉÍÏ :
<PRE>
if {$activeFile == ""} {return} &lt;-- ÐÒÏ×ÅÒËÁ
set text "$nb.f$activeFile.f.text" &lt;-- ÉÍÑ ÔÅËÓÔÏ×ÏÇÏ ×ÉÄÖÅÔÁ
set fullPath [lindex $files($activeFile) 0] &lt;-- ÐÏÌÎÙÊ ÐÕÔØ Ë ÆÁÊÌÕ
</PRE>
<P>
</LI>
</UL>
<P>
<H1><A NAME="SECTION00030000000000000000">
ï ÜÔÏÍ ÄÏËÕÍÅÎÔÅ ...</A>
</H1>
<STRONG>Tk L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>XEditor Programming Guide</STRONG><P>
This document was generated using the
<A HREF="http://www-dsed.llnl.gov/files/programs/unix/latex2html/manual/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2K.1beta (1.57)
<P>
Copyright &#169; 1993, 1994, 1995, 1996,
<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>,
Computer Based Learning Unit, University of Leeds.
<BR>
Copyright &#169; 1997, 1998, 1999,
<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>,
Mathematics Department, Macquarie University, Sydney.
<P>
The command line arguments were: <BR>
<STRONG>latex2html</STRONG> <TT>-no_navigation -split 0 /home/kalinin/projects/tcl/tle/doc/tle_api_guide.tex</TT>
<P>
The translation was initiated by on 2002-12-26
<BR><HR>
<ADDRESS>
2002-12-26
</ADDRESS>
</BODY>
</HTML>

27
doc/tle_usr_manual.aux Executable file
View File

@ -0,0 +1,27 @@
\relax
\catcode`"\active
\select@language{russian}
\@writefile{toc}{\select@language{russian}}
\@writefile{lof}{\select@language{russian}}
\@writefile{lot}{\select@language{russian}}
\@writefile{toc}{\contentsline {section}{\numberline {1}\IeC {\CYRN }\IeC {\cyra }\IeC {\cyrz }\IeC {\cyrn }\IeC {\cyra }\IeC {\cyrch }\IeC {\cyre }\IeC {\cyrn }\IeC {\cyri }\IeC {\cyre }}{1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}\IeC {\CYRO }\IeC {\cyrp }\IeC {\cyri }\IeC {\cyrs }\IeC {\cyra }\IeC {\cyrn }\IeC {\cyri }\IeC {\cyre } \IeC {\cyrf }\IeC {\cyru }\IeC {\cyrn }\IeC {\cyrk }\IeC {\cyrc }\IeC {\cyri }\IeC {\cyrishrt }}{1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}\IeC {\CYRN }\IeC {\cyre }\IeC {\cyro }\IeC {\cyrb }\IeC {\cyrh }\IeC {\cyro }\IeC {\cyrd }\IeC {\cyri }\IeC {\cyrm }\IeC {\cyro }\IeC {\cyre } \IeC {\CYRP }\IeC {\CYRO }}{2}}
\@writefile{toc}{\contentsline {section}{\numberline {2}\IeC {\CYRN }\IeC {\cyra }\IeC {\cyrch }\IeC {\cyra }\IeC {\cyrl }\IeC {\cyro } \IeC {\cyrr }\IeC {\cyra }\IeC {\cyrb }\IeC {\cyro }\IeC {\cyrt }\IeC {\cyrery }}{2}}
\@writefile{toc}{\contentsline {section}{\numberline {3}\IeC {\CYRR }a\IeC {\cyrb }\IeC {\cyro }\IeC {\cyrt }\IeC {\cyra } \IeC {\cyrs } \IeC {\cyrd }\IeC {\cyro }\IeC {\cyrk }\IeC {\cyru }\IeC {\cyrm }\IeC {\cyre }\IeC {\cyrn }\IeC {\cyrt }\IeC {\cyro }\IeC {\cyrm }}{3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}\IeC {\CYRR }\IeC {\cyre }\IeC {\cyrd }\IeC {\cyra }\IeC {\cyrk }\IeC {\cyrt }\IeC {\cyri }\IeC {\cyrr }\IeC {\cyro }\IeC {\cyrv }\IeC {\cyra }\IeC {\cyrn }\IeC {\cyri }\IeC {\cyre }}{3}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.1}\IeC {\CYRV }\IeC {\cyrs }\IeC {\cyrt }\IeC {\cyra }\IeC {\cyrv }\IeC {\cyrk }\IeC {\cyra } \IeC {\cyrt }\IeC {\cyre }\IeC {\cyrg }\IeC {\cyro }\IeC {\cyrv }}{3}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.2}\IeC {\CYRP }\IeC {\cyro }\IeC {\cyri }\IeC {\cyrs }\IeC {\cyrk } \IeC {\cyri } \IeC {\cyrz }\IeC {\cyra }\IeC {\cyrm }\IeC {\cyre }\IeC {\cyrn }\IeC {\cyra } \IeC {\cyrt }\IeC {\cyre }\IeC {\cyrk }\IeC {\cyrs }\IeC {\cyrt }\IeC {\cyra }}{4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}\IeC {\CYRP }\IeC {\cyre }\IeC {\cyrr }\IeC {\cyre }\IeC {\cyrk }\IeC {\cyro }\IeC {\cyrd }\IeC {\cyri }\IeC {\cyrr }\IeC {\cyro }\IeC {\cyrv }\IeC {\cyra }\IeC {\cyrn }\IeC {\cyri }\IeC {\cyre }}{4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}\IeC {\CYRP }\IeC {\cyrr }\IeC {\cyre }\IeC {\cyrd }\IeC {\cyrp }\IeC {\cyrr }\IeC {\cyro }\IeC {\cyrs }\IeC {\cyrm }\IeC {\cyro }\IeC {\cyrt }\IeC {\cyrr } \IeC {\cyrt }\IeC {\cyre }\IeC {\cyrk }\IeC {\cyrs }\IeC {\cyrt }\IeC {\cyra } \IeC {\cyri } \IeC {\cyrf }\IeC {\cyro }\IeC {\cyrr }\IeC {\cyrm }\IeC {\cyru }\IeC {\cyrl }}{4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}\IeC {\CYRP }\IeC {\cyrr }\IeC {\cyro }\IeC {\cyrv }\IeC {\cyre }\IeC {\cyrr }\IeC {\cyrk }\IeC {\cyra } \IeC {\cyro }\IeC {\cyrr }\IeC {\cyrf }\IeC {\cyro }\IeC {\cyrg }\IeC {\cyrr }\IeC {\cyra }\IeC {\cyrf }\IeC {\cyri }\IeC {\cyri }}{5}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.5}\IeC {\CYRP }\IeC {\cyrr }\IeC {\cyre }\IeC {\cyro }\IeC {\cyrb }\IeC {\cyrr }\IeC {\cyra }\IeC {\cyrz }\IeC {\cyro }\IeC {\cyrv }\IeC {\cyra }\IeC {\cyrn }\IeC {\cyri }\IeC {\cyre } \IeC {\cyrv } \IeC {\cyrr }\IeC {\cyra }\IeC {\cyrz }\IeC {\cyrl }\IeC {\cyri }\IeC {\cyrch }\IeC {\cyrn }\IeC {\cyrery }\IeC {\cyre } \IeC {\cyrf }\IeC {\cyro }\IeC {\cyrr }\IeC {\cyrm }\IeC {\cyra }\IeC {\cyrt }\IeC {\cyrery }}{5}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.6}\IeC {\CYRP }\IeC {\cyrr }\IeC {\cyre }\IeC {\cyrd }\IeC {\cyrv }\IeC {\cyra }\IeC {\cyrr }\IeC {\cyri }\IeC {\cyrt }\IeC {\cyre }\IeC {\cyrl }\IeC {\cyrsftsn }\IeC {\cyrn }\IeC {\cyrery }\IeC {\cyrishrt } \IeC {\cyrp }\IeC {\cyrr }\IeC {\cyro }\IeC {\cyrs }\IeC {\cyrm }\IeC {\cyro }\IeC {\cyrt }\IeC {\cyrr } \IeC {\cyrd }\IeC {\cyro }\IeC {\cyrk }\IeC {\cyru }\IeC {\cyrm }\IeC {\cyre }\IeC {\cyrn }\IeC {\cyrt }\IeC {\cyra }}{6}}
\@writefile{toc}{\contentsline {section}{\numberline {4}\IeC {\CYRN }\IeC {\cyra }\IeC {\cyrs }\IeC {\cyrt }\IeC {\cyrr }\IeC {\cyro }\IeC {\cyrishrt }\IeC {\cyrk }\IeC {\cyra }}{6}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}\IeC {\CYRK }\IeC {\cyro }\IeC {\cyrn }\IeC {\cyrf }\IeC {\cyri }\IeC {\cyrg }\IeC {\cyru }\IeC {\cyrr }\IeC {\cyra }\IeC {\cyrc }\IeC {\cyri }\IeC {\cyro }\IeC {\cyrn }\IeC {\cyrn }\IeC {\cyrery }\IeC {\cyrishrt } \IeC {\cyrf }\IeC {\cyra }\IeC {\cyrishrt }\IeC {\cyrl }}{6}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}\IeC {\CYRP }\IeC {\cyra }\IeC {\cyrn }\IeC {\cyre }\IeC {\cyrl }\IeC {\cyre }\IeC {\cyrishrt } \IeC {\cyri }\IeC {\cyrn }\IeC {\cyrs }\IeC {\cyrt }\IeC {\cyrr }\IeC {\cyru }\IeC {\cyrm }\IeC {\cyre }\IeC {\cyrn }\IeC {\cyrt }\IeC {\cyro }\IeC {\cyrv }}{9}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}\IeC {\CYRO }\IeC {\cyrp }\IeC {\cyri }\IeC {\cyrs }\IeC {\cyra }\IeC {\cyrn }\IeC {\cyri }\IeC {\cyre } \IeC {\cyrf }\IeC {\cyru }\IeC {\cyrn }\IeC {\cyrk }\IeC {\cyrc }\IeC {\cyri }\IeC {\cyrishrt }}{9}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.2}\IeC {\CYRN }\IeC {\cyra }\IeC {\cyri }\IeC {\cyrm }\IeC {\cyre }\IeC {\cyrn }\IeC {\cyro }\IeC {\cyrv }\IeC {\cyra }\IeC {\cyrn }\IeC {\cyri }\IeC {\cyre } \IeC {\cyrf }\IeC {\cyra }\IeC {\cyrishrt }\IeC {\cyrl }\IeC {\cyra }}{10}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.3}\IeC {\CYRF }\IeC {\cyro }\IeC {\cyrr }\IeC {\cyrm }\IeC {\cyra }\IeC {\cyrt } \IeC {\cyrf }\IeC {\cyra }\IeC {\cyrishrt }\IeC {\cyrl }\IeC {\cyra }}{10}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.4}\IeC {\CYRP }\IeC {\cyrr }\IeC {\cyri }\IeC {\cyrm }\IeC {\cyre }\IeC {\cyrr }}{10}}
\@writefile{toc}{\contentsline {section}{\numberline {5}"\IeC {\CYRG }\IeC {\cyro }\IeC {\cyrr }\IeC {\cyrya }\IeC {\cyrch }\IeC {\cyri }\IeC {\cyre }" \IeC {\cyrk }\IeC {\cyrl }\IeC {\cyra }\IeC {\cyrv }\IeC {\cyri }\IeC {\cyrsh }\IeC {\cyri }}{11}}

BIN
doc/tle_usr_manual.dvi Executable file

Binary file not shown.

532
doc/tle_usr_manual.tex Executable file
View File

@ -0,0 +1,532 @@
%----------------------------------------
% 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

432
doc/tle_usr_manual/index.html Executable file
View File

@ -0,0 +1,432 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!--Converted with LaTeX2HTML 2K.1beta (1.57)
original version by: Nikos Drakos, CBLU, University of Leeds
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Расширенный LATEXредактор</TITLE>
<META NAME="description" CONTENT="Расширенный LATEXредактор">
<META NAME="keywords" CONTENT="tle_usr_manual">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-r">
<META NAME="Generator" CONTENT="LaTeX2HTML v2K.1beta">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="tle_usr_manual.css">
</HEAD>
<BODY >
<H1 ALIGN="CENTER">Расширенный L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>Xредактор</H1>
<P ALIGN="CENTER"><STRONG>Сергей Калинин, Константин Михайленко</STRONG></P>
<P>
<H1><A NAME="SECTION00010000000000000000">
Назначение</A>
</H1>
Программа предназначена для создания и редактирования файлов в рамках издательской системы T<SMALL>E</SMALL>X (L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X).
<H2><A NAME="SECTION00011000000000000000">
Описание функций</A>
</H2>
Одновременное редактирование нескольких файлов.
Создание нового документа из шаблона.
Отображение структуры документа ввиде дерева.
Отображение ввиде дерева включенных внешних документов.
Вывод списка меток и ссылок.
Подсветка синтаксиса.
Поиск и замена текста.
Автодобивка команд.
Преобразование .tex файла в dvi, ps, pdf, html (при помощи внешних программ) и просмотр полученного
документа.
Отображение процесса компиляции и преобразования документа и вывод ошибок.
Печать исходного кода.
Настраиваемые панели инструментов.
Вставка настраиваемых готовых конструкций кода.
Интерактивная проверка орфографии (при помощи ispell).
Автоматический перенос строк при достижении определенной в конфигурации длинны.
Автосохранение документа через определённый промежуток времени.
Сохранение позиции редактирования в открытых файлах при выходе из программы и возобновление
редактирования этих файлов при следующем запуске программы.
Возможность подключения дополнительных внешних программ.
Настраиваемые цветовые схемы и графические темы панелей инструментов.
Подключение внешнего редактора.
Простой механизм локализации интерфейса программы. В данный момент редактор локализован на русском
и английском языках.
Предпросмотр математических формул и любых частей текста а также сохранение их как изображения.
Поддерживается множество кодировок и перекодировка из одной в другую.
Автоматическое подключение нужной кодировки при использовании декларации пакета <I>inputenc</I>.
<P>
<H2><A NAME="SECTION00012000000000000000">
Необходимое ПО</A>
</H2>
Программа написана на интерпретируемом языке 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).
О настройке данных программ будет рассказано ниже.
<P>
<H1><A NAME="SECTION00020000000000000000">
Начало работы</A>
</H1>
Программа запускается командой <I>/usr/bin/tle</I> - если она установлена из rpm-пакета, или
запускается файл <I>tle.tcl</I> из дистрибутивного комплекта.
После запуска в домашнем каталоге создается рабочая папка <I>.tle</I> содержащая конфигурационные файлы.
<P>
Далее можете приступать к редактированию файлов. Можно открыть уже существующие документы
<I>Файл - Открыть</I> либо создавать новые <I>Файл - Новый</I>. Программа, также,
поддерживает создание документов из заранее заданных шаблонов <I>Файл - Новый - Создать из
шаблона</I>, которые, Вы можете создавать самостоятельно, в появившимся диалоге выбирете нужный шаблон
и введите требуемое имя и нажмите кнопку <I>Создать</I>
<P>
Tk LaTeX Editor позволяет редактировать множество файлов, переключаясь между закладками
редактора.
<P>
Сохранение документа производиться нажатием конпки на панели инструментов, либо в меню <I>Файл -
Сохранить</I> либо нажатием сочитания клавиш <I>Ctrl - S</I>, либо автоматически, согласно установкам
в конфигурационном файле.
<P>
<H1><A NAME="SECTION00030000000000000000">
Настройка Панелей инструментов</A>
</H1>
Вы можете самостоятельно настраивать панели инструментов, т.е. добавлять кнопки и меню.
Описание панелей инструментов (тул-баров) храниться в каталоге <TT>share/gui/toolbar/</TT>
<P>
<H2><A NAME="SECTION00031000000000000000">
Описание функций</A>
</H2>
Для команд определяемых пользователем есть несколько функций для добавления тэгов в текст.
<P>
<DL>
<DT><STRONG><I><B>AddTextFont</B></I></STRONG></DT>
<DD>&nbsp;-- добавляет тэги вида &#171;<code>\tiny{}</code>&#187;.
Формат вызова функции
<PRE>
AddTextFont Имя_Тэга
</PRE>
</DD>
<DT><STRONG><I><B>AddTextDouble</B></I></STRONG></DT>
<DD>&nbsp;-- добавляет тэги вида &#171;<code>\begin{center}" \ldots \verb"\end{center}</code>&#187;.
<PRE>
AddTextDouble Начальный_Тег Наименование конечный_Тег
</PRE>
</DD>
<DT><STRONG><I><B>AddTextCommand</B></I></STRONG></DT>
<DD>&nbsp;-- для добавления простых тэгов вида &#171;<code>\beta</code>&#187;.
<PRE>
AddTextCommand Имя_Тэга
</PRE>
</DD>
</DL>
В командах начальный слэш следует опускать, он добавляется автоматически
<P>
<H2><A NAME="SECTION00032000000000000000">
Наименование файла</A>
</H2>
Для создания новой панели инструментов создайте в каталоге <TT>toolbar</TT> файл с любым именем без
расширения кроме main (это зарезервированное слово под основную панель)
<P>
<H2><A NAME="SECTION00033000000000000000">
Формат файла</A>
</H2>
Строки начинающиеся на &#171;<code>#</code>&#187; являются комментарием и игнорируются так же как и пустые строки
<P>
Для создания меню:
<PRE>
ключевое_слово иконка "Текст подсказки"
</PRE>
<P>
Для создания команд в меню:
<PRE>
ключевое_слово "команда" "Текст подсказки" иконка
</PRE>
<P>
Параметр <I>иконка</I> не является обязательным если он не указан то в меню будет вставлен текст
если указан - то изображение
<P>
Для создания кнопки:
<PRE>
ключевое_слово "команда" Иконка "Текст подсказки"
</PRE>
<P>
<H2><A NAME="SECTION00034000000000000000">
Пример</A>
</H2>
<PRE>
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"
</PRE>
<P>
Здесь
<TT>menu</TT>, <TT>button</TT>, <TT>cmd</TT>, <TT>imagecmd</TT>&nbsp;-- ключевые слова для создания
соотвественно меню, кнопки меню и кнопки с изображением;
<TT>cmd&nbsp;separator</TT>&nbsp;-- добавление в меню разделителя
<P>
<H1><A NAME="SECTION00040000000000000000">
Рaбота с документом</A>
</H1>
<P>
<H2><A NAME="SECTION00041000000000000000">
Редактирование</A>
</H2>
<P>
<H2><A NAME="SECTION00042000000000000000">
Перекодирование</A>
</H2>
TLE поддерживает работу с множеством различных кодировок. При открытии latex-документа происходит
считывание данных о кодировке документа, если используется пакет <I>inputenc</I>. Если документ не
содержит данных о кодовой странице то он будет отображён с использованием системной кодировки. В
случае не совпадения кодовой страницы документа и Вашей системы документ будет отображён
некорректно. Но это можно исправить, указав кодировку документа через меню <I>Вид -
Кодировка</I>.
<P>
Если Вы хотите сохранить документ в кодировке отличной от исходной то необходимо выбрать нужную
кодовую страницу через меню <I>Документ - Кодировка</I> и файл будет перекодирован при сохранении.
<P>
В случае если Вы используете пакет <I>inputenc</I> но не правильно указали кодировку документа в
описании пакета либо текущая кодировка документа не соответсвет требуемой, при сохранении будет
выдано предупреждение о не соответствии кодовых страниц.
<P>
<H2><A NAME="SECTION00043000000000000000">
Предпросмотр текста и формул</A>
</H2>
При наличии в системе дополнительных программ, становится доступна функция предварительного
просмотра математических формул и произвольных частей документа.
Для осуществления данной операции необходимо в редактируемом документе выделить текст формулы, либо
её часть, и нажать сочитание клавиш <I>Alt-V</I>. Также можно выбрать пункт <I>Показать формулу</I>
в меню <I>Редактирование</I> или при помощи всплывабщего меню.
<P>
Для произволного фрагмента текста операция идентична предыдущей с той лишь разницей, что необходимо
нажать <I>Alt-B</I> или меню <I>Редактирование - Показать Текст</I>
<P>
<H2><A NAME="SECTION00044000000000000000">
Проверка орфографии</A>
</H2>
Для проверки орфографии используется программа ispell.
Вам необходимо выбрать в меню <I>Документ - Орфография</I> или нажать кнопку в панели инструментов.
В появившимся диалоге надо выбрать требуемый словарь и режим проверки - весь документ или с
текущей позиции. При несовпадении слов в тексте и в словаре Вам будет предложен список возможных
вариантов из которых можно выбрать нужный и заменить неправильное слово.
<P>
<H2><A NAME="SECTION00045000000000000000">
Преобразование в различные форматы</A>
</H2>
Для преобразования файла в различные форматы используются внешние программы.
Команды для их запуска описаны в конфигурационном файле tle.conf:
<P>
<PRE>
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"
</PRE>
<P>
Если в команде встречается макрос <I>%fileName</I> то программа подставит вместо него имя текущего
файла без расширения.
<P>
Вызов команд производиться как через меню <I>Документ</I> - <I>Преобразовать</I> так и через
панель инструментов.
Разница заключается лишь в том, что при вызове команды через меню будет вызван диалог, в котором
можно изменить опции командной строки, заданной по умолчанию.
А при вызове команды через панель инструментов будет использована последняя заданная команда для
операции преобразования.
<P>
<H2><A NAME="SECTION00046000000000000000">
Предварительный просмотр документа</A>
</H2>
После преобразования документа станет доступна возможность просмотра полученного результата.
Команды для просмотра заданы в конфигурационном файле tle.conf, аналогично и командам конвертации.
<P>
<PRE>
## PREVIEW ##
set preview_cmd(dvi) "xdvi"
set preview_cmd(ps) "gv"
set preview_cmd(pdf) "acroread"
set preview_cmd(html) "mozilla"
</PRE>
<P>
Вызвать команды просмотра можно как через меню <I>Документ</I> - <I>Предварительный просмотр</I>
так и при помощи кнопок на панели инструментов.
<P>
<H1><A NAME="SECTION00050000000000000000">
"Горячие" клавиши</A>
</H1>
<P>
<I>Ctrl + A</I> - Сохранить файл под другим именем.
<P>
<I>Ctrl + C</I> - Команда копирует выделенный в окне редактора текст в буфер обмена.
<P>
<I>Ctrl + F</I> - Поиск заданного выражения в тексте.
<P>
<I>Ctrl + G</I> - Перейти к строке с заданным номером.
<P>
<I>Ctrl + J</I> - Вывести список функций с именами полностью или частично совпадающими с введенным.
<P>
<I>Ctrl + L</I> - Вывести список слов, полностью или частично совпадающих с введенным.
<P>
<I>Ctrl + M</I> - Переключение между открытыми файлами (между окнами редактора).
<P>
<I>Ctrl + N</I> - Создать новый файл. Команда вызывает диалог создания файла.
<P>
<I>Ctrl + O</I> - Открыть файл.
<P>
<I>Ctrl + P</I> - Печать файла (кода).
<P>
<I>Ctrl + Q</I> - Выход.
<P>
<I>Ctrl + R</I> - Поиск и замена заданного выражения в тексте.
<P>
<I>Ctrl + S</I> - Сохранить файл. Сохраняется файл, который открыт в текущем окне редактора.
<P>
<I>Ctrl + T</I> - Поменять местами два символа, стоящих до и после курсора.
<P>
<I>Ctrl + U</I> - Перемещает курсор на соответствующую открытую или закрытую скобку.
<P>
<I>Ctrl + V</I> - Вставка фрагмента текста из буфера обмена, скопированного предыдущей командой.
<P>
<I>Ctrl + W</I> - Закрыть файл. Команда закрывает файл открытый в текущем окне редактора.
<P>
<I>Ctrl + X</I> - Вырезать выделенный фрагмент текста в буфер обмена.
<P>
<I>Ctrl + Z</I> - Отменить операцию
<P>
<I>F1</I> - Вызов системы помощи по программе и по языку. Если в тексте выделить команду и нажать
данную клавишу то будет выведена на экран подсказка по этой команде.
<P>
<I>F2</I> - Разделение окна редактора
<P>
<I>F3</I> - Повторный поиск, команда работает с последним введенным выражением в диалоговом окне
поиска
<P>
<I>F5</I> - Компиляция файла в DVI формат
<P>
<I>F6</I> - Конвертирование DVI файла в PS.
<P>
<I>F7</I> - Конвертирование DVI файла в PDF.
<P>
<I>F9</I> - Выполнение ("компиляция") текущего (активного) проекта.
<P>
<I>Alt + B</I> - Предпросмотр выделенного участка текста
<P>
<I>Alt + C</I> - Автодобивка команд.
<P>
<I>Alt + V</I> - Предпросмотр математической формулы
<P>
<H1><A NAME="SECTION00060000000000000000">
Об этом документе ...</A>
</H1>
<STRONG>Расширенный L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>Xредактор</STRONG><P>
This document was generated using the
<A HREF="http://www-dsed.llnl.gov/files/programs/unix/latex2html/manual/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2K.1beta (1.57)
<P>
Copyright &#169; 1993, 1994, 1995, 1996,
<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>,
Computer Based Learning Unit, University of Leeds.
<BR>
Copyright &#169; 1997, 1998, 1999,
<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>,
Mathematics Department, Macquarie University, Sydney.
<P>
The command line arguments were: <BR>
<STRONG>latex2html</STRONG> <TT>-no_navigation -split 0 /home/banzaj/projects/tcl/tle/doc/tle_usr_manual.tex</TT>
<P>
The translation was initiated by on 2003-01-08
<BR><HR>
<ADDRESS>
2003-01-08
</ADDRESS>
</BODY>
</HTML>

13
doc/tle_usr_manual/labels.pl Executable file
View File

@ -0,0 +1,13 @@
# LaTeX2HTML 2K.1beta (1.57)
# Associate labels original text with physical files.
1;
# LaTeX2HTML 2K.1beta (1.57)
# labels from external_latex_labels array.
1;

View File

@ -0,0 +1,30 @@
/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
.MATH { font-family: "Century Schoolbook", serif; }
.MATH I { font-family: "Century Schoolbook", serif; font-style: italic }
.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
/* implement both fixed-size and relative sizes */
SMALL.XTINY { font-size : xx-small }
SMALL.TINY { font-size : x-small }
SMALL.SCRIPTSIZE { font-size : smaller }
SMALL.FOOTNOTESIZE { font-size : small }
SMALL.SMALL { }
BIG.LARGE { }
BIG.XLARGE { font-size : large }
BIG.XXLARGE { font-size : x-large }
BIG.HUGE { font-size : larger }
BIG.XHUGE { font-size : xx-large }
/* heading styles */
H1 { }
H2 { }
H3 { }
H4 { }
H5 { }
/* mathematics styles */
DIV.displaymath { } /* math displays */
TD.eqno { } /* equation-number cells */
/* document-specific styles come next */

View File

@ -0,0 +1,432 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!--Converted with LaTeX2HTML 2K.1beta (1.57)
original version by: Nikos Drakos, CBLU, University of Leeds
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Расширенный LATEXредактор</TITLE>
<META NAME="description" CONTENT="Расширенный LATEXредактор">
<META NAME="keywords" CONTENT="tle_usr_manual">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-r">
<META NAME="Generator" CONTENT="LaTeX2HTML v2K.1beta">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="tle_usr_manual.css">
</HEAD>
<BODY >
<H1 ALIGN="CENTER">Расширенный L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>Xредактор</H1>
<P ALIGN="CENTER"><STRONG>Сергей Калинин, Константин Михайленко</STRONG></P>
<P>
<H1><A NAME="SECTION00010000000000000000">
Назначение</A>
</H1>
Программа предназначена для создания и редактирования файлов в рамках издательской системы T<SMALL>E</SMALL>X (L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X).
<H2><A NAME="SECTION00011000000000000000">
Описание функций</A>
</H2>
Одновременное редактирование нескольких файлов.
Создание нового документа из шаблона.
Отображение структуры документа ввиде дерева.
Отображение ввиде дерева включенных внешних документов.
Вывод списка меток и ссылок.
Подсветка синтаксиса.
Поиск и замена текста.
Автодобивка команд.
Преобразование .tex файла в dvi, ps, pdf, html (при помощи внешних программ) и просмотр полученного
документа.
Отображение процесса компиляции и преобразования документа и вывод ошибок.
Печать исходного кода.
Настраиваемые панели инструментов.
Вставка настраиваемых готовых конструкций кода.
Интерактивная проверка орфографии (при помощи ispell).
Автоматический перенос строк при достижении определенной в конфигурации длинны.
Автосохранение документа через определённый промежуток времени.
Сохранение позиции редактирования в открытых файлах при выходе из программы и возобновление
редактирования этих файлов при следующем запуске программы.
Возможность подключения дополнительных внешних программ.
Настраиваемые цветовые схемы и графические темы панелей инструментов.
Подключение внешнего редактора.
Простой механизм локализации интерфейса программы. В данный момент редактор локализован на русском
и английском языках.
Предпросмотр математических формул и любых частей текста а также сохранение их как изображения.
Поддерживается множество кодировок и перекодировка из одной в другую.
Автоматическое подключение нужной кодировки при использовании декларации пакета <I>inputenc</I>.
<P>
<H2><A NAME="SECTION00012000000000000000">
Необходимое ПО</A>
</H2>
Программа написана на интерпретируемом языке 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).
О настройке данных программ будет рассказано ниже.
<P>
<H1><A NAME="SECTION00020000000000000000">
Начало работы</A>
</H1>
Программа запускается командой <I>/usr/bin/tle</I> - если она установлена из rpm-пакета, или
запускается файл <I>tle.tcl</I> из дистрибутивного комплекта.
После запуска в домашнем каталоге создается рабочая папка <I>.tle</I> содержащая конфигурационные файлы.
<P>
Далее можете приступать к редактированию файлов. Можно открыть уже существующие документы
<I>Файл - Открыть</I> либо создавать новые <I>Файл - Новый</I>. Программа, также,
поддерживает создание документов из заранее заданных шаблонов <I>Файл - Новый - Создать из
шаблона</I>, которые, Вы можете создавать самостоятельно, в появившимся диалоге выбирете нужный шаблон
и введите требуемое имя и нажмите кнопку <I>Создать</I>
<P>
Tk LaTeX Editor позволяет редактировать множество файлов, переключаясь между закладками
редактора.
<P>
Сохранение документа производиться нажатием конпки на панели инструментов, либо в меню <I>Файл -
Сохранить</I> либо нажатием сочитания клавиш <I>Ctrl - S</I>, либо автоматически, согласно установкам
в конфигурационном файле.
<P>
<H1><A NAME="SECTION00030000000000000000">
Настройка Панелей инструментов</A>
</H1>
Вы можете самостоятельно настраивать панели инструментов, т.е. добавлять кнопки и меню.
Описание панелей инструментов (тул-баров) храниться в каталоге <TT>share/gui/toolbar/</TT>
<P>
<H2><A NAME="SECTION00031000000000000000">
Описание функций</A>
</H2>
Для команд определяемых пользователем есть несколько функций для добавления тэгов в текст.
<P>
<DL>
<DT><STRONG><I><B>AddTextFont</B></I></STRONG></DT>
<DD>&nbsp;-- добавляет тэги вида &#171;<code>\tiny{}</code>&#187;.
Формат вызова функции
<PRE>
AddTextFont Имя_Тэга
</PRE>
</DD>
<DT><STRONG><I><B>AddTextDouble</B></I></STRONG></DT>
<DD>&nbsp;-- добавляет тэги вида &#171;<code>\begin{center}" \ldots \verb"\end{center}</code>&#187;.
<PRE>
AddTextDouble Начальный_Тег Наименование конечный_Тег
</PRE>
</DD>
<DT><STRONG><I><B>AddTextCommand</B></I></STRONG></DT>
<DD>&nbsp;-- для добавления простых тэгов вида &#171;<code>\beta</code>&#187;.
<PRE>
AddTextCommand Имя_Тэга
</PRE>
</DD>
</DL>
В командах начальный слэш следует опускать, он добавляется автоматически
<P>
<H2><A NAME="SECTION00032000000000000000">
Наименование файла</A>
</H2>
Для создания новой панели инструментов создайте в каталоге <TT>toolbar</TT> файл с любым именем без
расширения кроме main (это зарезервированное слово под основную панель)
<P>
<H2><A NAME="SECTION00033000000000000000">
Формат файла</A>
</H2>
Строки начинающиеся на &#171;<code>#</code>&#187; являются комментарием и игнорируются так же как и пустые строки
<P>
Для создания меню:
<PRE>
ключевое_слово иконка "Текст подсказки"
</PRE>
<P>
Для создания команд в меню:
<PRE>
ключевое_слово "команда" "Текст подсказки" иконка
</PRE>
<P>
Параметр <I>иконка</I> не является обязательным если он не указан то в меню будет вставлен текст
если указан - то изображение
<P>
Для создания кнопки:
<PRE>
ключевое_слово "команда" Иконка "Текст подсказки"
</PRE>
<P>
<H2><A NAME="SECTION00034000000000000000">
Пример</A>
</H2>
<PRE>
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"
</PRE>
<P>
Здесь
<TT>menu</TT>, <TT>button</TT>, <TT>cmd</TT>, <TT>imagecmd</TT>&nbsp;-- ключевые слова для создания
соотвественно меню, кнопки меню и кнопки с изображением;
<TT>cmd&nbsp;separator</TT>&nbsp;-- добавление в меню разделителя
<P>
<H1><A NAME="SECTION00040000000000000000">
Рaбота с документом</A>
</H1>
<P>
<H2><A NAME="SECTION00041000000000000000">
Редактирование</A>
</H2>
<P>
<H2><A NAME="SECTION00042000000000000000">
Перекодирование</A>
</H2>
TLE поддерживает работу с множеством различных кодировок. При открытии latex-документа происходит
считывание данных о кодировке документа, если используется пакет <I>inputenc</I>. Если документ не
содержит данных о кодовой странице то он будет отображён с использованием системной кодировки. В
случае не совпадения кодовой страницы документа и Вашей системы документ будет отображён
некорректно. Но это можно исправить, указав кодировку документа через меню <I>Вид -
Кодировка</I>.
<P>
Если Вы хотите сохранить документ в кодировке отличной от исходной то необходимо выбрать нужную
кодовую страницу через меню <I>Документ - Кодировка</I> и файл будет перекодирован при сохранении.
<P>
В случае если Вы используете пакет <I>inputenc</I> но не правильно указали кодировку документа в
описании пакета либо текущая кодировка документа не соответсвет требуемой, при сохранении будет
выдано предупреждение о не соответствии кодовых страниц.
<P>
<H2><A NAME="SECTION00043000000000000000">
Предпросмотр текста и формул</A>
</H2>
При наличии в системе дополнительных программ, становится доступна функция предварительного
просмотра математических формул и произвольных частей документа.
Для осуществления данной операции необходимо в редактируемом документе выделить текст формулы, либо
её часть, и нажать сочитание клавиш <I>Alt-V</I>. Также можно выбрать пункт <I>Показать формулу</I>
в меню <I>Редактирование</I> или при помощи всплывабщего меню.
<P>
Для произволного фрагмента текста операция идентична предыдущей с той лишь разницей, что необходимо
нажать <I>Alt-B</I> или меню <I>Редактирование - Показать Текст</I>
<P>
<H2><A NAME="SECTION00044000000000000000">
Проверка орфографии</A>
</H2>
Для проверки орфографии используется программа ispell.
Вам необходимо выбрать в меню <I>Документ - Орфография</I> или нажать кнопку в панели инструментов.
В появившимся диалоге надо выбрать требуемый словарь и режим проверки - весь документ или с
текущей позиции. При несовпадении слов в тексте и в словаре Вам будет предложен список возможных
вариантов из которых можно выбрать нужный и заменить неправильное слово.
<P>
<H2><A NAME="SECTION00045000000000000000">
Преобразование в различные форматы</A>
</H2>
Для преобразования файла в различные форматы используются внешние программы.
Команды для их запуска описаны в конфигурационном файле tle.conf:
<P>
<PRE>
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"
</PRE>
<P>
Если в команде встречается макрос <I>%fileName</I> то программа подставит вместо него имя текущего
файла без расширения.
<P>
Вызов команд производиться как через меню <I>Документ</I> - <I>Преобразовать</I> так и через
панель инструментов.
Разница заключается лишь в том, что при вызове команды через меню будет вызван диалог, в котором
можно изменить опции командной строки, заданной по умолчанию.
А при вызове команды через панель инструментов будет использована последняя заданная команда для
операции преобразования.
<P>
<H2><A NAME="SECTION00046000000000000000">
Предварительный просмотр документа</A>
</H2>
После преобразования документа станет доступна возможность просмотра полученного результата.
Команды для просмотра заданы в конфигурационном файле tle.conf, аналогично и командам конвертации.
<P>
<PRE>
## PREVIEW ##
set preview_cmd(dvi) "xdvi"
set preview_cmd(ps) "gv"
set preview_cmd(pdf) "acroread"
set preview_cmd(html) "mozilla"
</PRE>
<P>
Вызвать команды просмотра можно как через меню <I>Документ</I> - <I>Предварительный просмотр</I>
так и при помощи кнопок на панели инструментов.
<P>
<H1><A NAME="SECTION00050000000000000000">
"Горячие" клавиши</A>
</H1>
<P>
<I>Ctrl + A</I> - Сохранить файл под другим именем.
<P>
<I>Ctrl + C</I> - Команда копирует выделенный в окне редактора текст в буфер обмена.
<P>
<I>Ctrl + F</I> - Поиск заданного выражения в тексте.
<P>
<I>Ctrl + G</I> - Перейти к строке с заданным номером.
<P>
<I>Ctrl + J</I> - Вывести список функций с именами полностью или частично совпадающими с введенным.
<P>
<I>Ctrl + L</I> - Вывести список слов, полностью или частично совпадающих с введенным.
<P>
<I>Ctrl + M</I> - Переключение между открытыми файлами (между окнами редактора).
<P>
<I>Ctrl + N</I> - Создать новый файл. Команда вызывает диалог создания файла.
<P>
<I>Ctrl + O</I> - Открыть файл.
<P>
<I>Ctrl + P</I> - Печать файла (кода).
<P>
<I>Ctrl + Q</I> - Выход.
<P>
<I>Ctrl + R</I> - Поиск и замена заданного выражения в тексте.
<P>
<I>Ctrl + S</I> - Сохранить файл. Сохраняется файл, который открыт в текущем окне редактора.
<P>
<I>Ctrl + T</I> - Поменять местами два символа, стоящих до и после курсора.
<P>
<I>Ctrl + U</I> - Перемещает курсор на соответствующую открытую или закрытую скобку.
<P>
<I>Ctrl + V</I> - Вставка фрагмента текста из буфера обмена, скопированного предыдущей командой.
<P>
<I>Ctrl + W</I> - Закрыть файл. Команда закрывает файл открытый в текущем окне редактора.
<P>
<I>Ctrl + X</I> - Вырезать выделенный фрагмент текста в буфер обмена.
<P>
<I>Ctrl + Z</I> - Отменить операцию
<P>
<I>F1</I> - Вызов системы помощи по программе и по языку. Если в тексте выделить команду и нажать
данную клавишу то будет выведена на экран подсказка по этой команде.
<P>
<I>F2</I> - Разделение окна редактора
<P>
<I>F3</I> - Повторный поиск, команда работает с последним введенным выражением в диалоговом окне
поиска
<P>
<I>F5</I> - Компиляция файла в DVI формат
<P>
<I>F6</I> - Конвертирование DVI файла в PS.
<P>
<I>F7</I> - Конвертирование DVI файла в PDF.
<P>
<I>F9</I> - Выполнение ("компиляция") текущего (активного) проекта.
<P>
<I>Alt + B</I> - Предпросмотр выделенного участка текста
<P>
<I>Alt + C</I> - Автодобивка команд.
<P>
<I>Alt + V</I> - Предпросмотр математической формулы
<P>
<H1><A NAME="SECTION00060000000000000000">
Об этом документе ...</A>
</H1>
<STRONG>Расширенный L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>Xредактор</STRONG><P>
This document was generated using the
<A HREF="http://www-dsed.llnl.gov/files/programs/unix/latex2html/manual/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2K.1beta (1.57)
<P>
Copyright &#169; 1993, 1994, 1995, 1996,
<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>,
Computer Based Learning Unit, University of Leeds.
<BR>
Copyright &#169; 1997, 1998, 1999,
<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>,
Mathematics Department, Macquarie University, Sydney.
<P>
The command line arguments were: <BR>
<STRONG>latex2html</STRONG> <TT>-no_navigation -split 0 /home/banzaj/projects/tcl/tle/doc/tle_usr_manual.tex</TT>
<P>
The translation was initiated by on 2003-01-08
<BR><HR>
<ADDRESS>
2003-01-08
</ADDRESS>
</BODY>
</HTML>

7
errors Normal file
View File

@ -0,0 +1,7 @@
Error in startup script: cannot use geometry manager pack inside .frmBody.frmList.nBook.flblList.f which already has slaves managed by grid
while executing
"pack $lblList -side left -fill both -expand yes"
(file "/home/ksv/Projects/tcl/tle/lib/modules/gui.tcl" line 230)
invoked from within
"source [file join $dir(mod) gui.tcl]"
(file "/home/ksv/Projects/tcl/tle/tle.tcl" line 121)

1
lib/command/afterpage.lst Executable file
View File

@ -0,0 +1 @@
\afterpage{}

2
lib/command/amsbsy.lst Executable file
View File

@ -0,0 +1,2 @@
\boldsymbol
\pmb{}

6
lib/command/amscd.lst Executable file
View File

@ -0,0 +1,6 @@
@(((
@)))
@<<<
@>>>
@AAA
@VVV

2
lib/command/amsfonts.lst Executable file
View File

@ -0,0 +1,2 @@
\mathbb
\mathfrac

59
lib/command/amsmath.lst Executable file
View File

@ -0,0 +1,59 @@
\\*
\\
\Big
\big
\Bigg
\bigg
\biggl
\Biggr
\biggr
\bigl
\Bigm
\binom{}{}{}{}{}{}
\cfrac[]{}{}
\dbinom{}{}{}{}{}{}
\ddddot{}
\dddot{}
\ddots{}
\dfrac{}{}
\dots
\dotsb
\dotsc
\dotsi
\dotsm
\fracwithdelims()[]
\genfrac{}{}{}{}{}{}
\idotsint
\leftroot
\measuredangle
\mod
\nolimits
\operatorname{}
\overset
\pmod
\pod
\rVert
\rvert
\xrightarrow
\sideset
\smash\spbreve
\spcheck
\spdddot
\spddot
\spdot
\special
\sphat
\sptilde
\stackrel
\tag{}
\tag*{}
\tbinom{}{}{}{}{}{}
\tfrac
\uproot
\varinjlim
\varliminf
\varlimsup
\varprojlim
Vmatrix
vmatrix

486
lib/command/amssymb.lst Executable file
View File

@ -0,0 +1,486 @@
\{
\|
\}
\aleph
\hat
\check
\acute
\grave
\bar
\vec
\dot
\ddot
\breve
\tilde
\allowdisplaybreaks
\alpha
\angle
\approx
\approxeq
\arccos
\arcsin
\arctan
\arg
\Arrowvert
\arrowvert
\ast
\asymp
\backepsilon
\backprime
\backsim
\backsimeq
\backslash
\barwedge
\Bbbk
\because
\beta
\beth
\between
\bigcap
\bigcirc
\bigcup
\bigodot
\bigoplus
\bigotimes
\bigsqcup
\bigstar
\bigstrutjot
\bigtriangledown
\bigtriangleup
\biguplus
\bigvee
\bigwedge
\blacklozenge
\blacksquare
\blacktriangle
\blacktriangledown
\blacktriangleleft
\blacktriangleright
\bot
\bowtie
\Box
\boxdot
\boxminus
\boxplus
\boxtimes
\bracevert
\bullet
\Bumpeq
\bumpeq
\Cap
\cap
\cdot
\cdots
\centerdot
\chi
\circ
\circeq
\circlearrowleft
\circlearrowright
\circledast
\circledcirc
\circleddash
\circledS
\clubsuit
\complement
\cong
\coprod
\cos
\cosh
\cot
\coth
\csc
\Cup
\cup
\curlyeqprec
\curlyeqsucc
\curlyvee
\curlywedg
\curvearrowleft
\curvearrowright
\dagger
\daleth
\dashleftarrow
\dashrightarrow
\dashv
\ddagger
\deg
\Delta
\delta
\det
\diagdown
\diagup
\Diamond
\diamond
\diamondsuit
\digamma
\dim
\div
\divideontimes
\dot
\doteq
\doteqdot
\dotplus
\doublebarwedge
\Downarrow
\downarrow
\downdownarrows
\downharpoonleft
\downharpoonright
\ell
\emptyset
\epsilon
\eqcirc
\eqslantgtr
\eqslantless
\equiv
\eta
\eth
\exists
\exp
\fallingdotseq
\Finv
\flat
\forall
\frac
\frown
\Game
\Gamma
\gamma
\gcd
\geq
\geqq
\geqslant
\gg
\ggg
\gimel
\gnapprox
\gneq
\gneqq
\gnsim
\grave
\gtrapprox
\gtrdot
\gtreqless
\gtreqqless
\gtrless
\gtrsim
\gvertneqq
\hat
\hbar
\heartsuit
\hom
\hookleftarrow
\hookrightarrow
\hslash
\iiiint
\iiint
\iint
\Im
\imath
\in
\inf
\infty
\int
\intercal
\iota
\jmath
\Join
\kappa
\ker
\Lambda
\lambda
\langle
\lceil
\ldots
\le
\Leftarrow
\leftarrow
\leftarrowtail
\leftharpoondown
\leftharpoonup
\leftleftarrows
\Leftrightarrow
\leftrightarrow
\leftrightarrows
\leftrightharpoons
\leftrightsquigarrow
\leftthreetimes
\leq
\leqq
\leqslant
\lessapprox
\lessdot
\lesseqgtr
\lesseqqgtr
\lessgtr
\lesssim
\lfloor
\lg
\lgroup
\lhd
\lim
\liminf
\limsup
\ll
\llcorner
\Lleftarrow
\lll
\lmoustache
\ln
\lnapprox
\lneq
\lneqq
\lnsim
\log
\Longleftarrow
\longleftarrow
\Longleftrightarrow
\longleftrightarrow
\longmapsto
\Longrightarrow
\longrightarrow
\looparrowleft
\looparrowright
\lozenge
\lrcorner
\Lsh
\lltimes
\lvertneqq
\mapsto
\mathbb
\max
\mho
\mid
\min
\models
\mp
\mu
\multimap
\nabla
\natural
\ncong
\nearrow
\neg
\neq
\nexists
\ngeq
\ngeqq
\ngeqslant
\ngtr
\ni
\nLeftarrow
\nleftarrow
\nLeftrightarrow
\nleftrightarrow 258
\nleq
\nleqq
\nleqslant
\nless
\nmid
\nparallel
\nprec
\npreceq
\nRightarrow
\nrightarrow
\nshortmid
\nshortparallel
\nsim
\nsubseteq
\nsucc
\nsucceq
\nsupseteq
\nsupseteqq
\ntriangleleft
\ntrianglelefteq
\ntriangleright
\ntrianglerighteq
\nu
\numberwithin
\nVDash
\nvDash
\nvdash
\nwarrow
\odot
\oint
\Omega
\omega
\ominus
\oplus
\oslash
\otimes
\overbrace
\overleftarrow
\overline
\overrightarrow
\parallel
\partial
\perp
\Phi
\phi
\Pi
\pi
\pitchfork
\pm
\pmb
\Pr
\prec
\precapprox
\preccurlyeq
\preceq
\precnapprox
\precnsim
\precsim
\prime
\prod
\propto
\Psi
\psi
\rangle
\rceil
\Re
\real
\rfloor
\rgroup
\rhd
\rho
\Rightarrow
\rightarrow
\rightarrowtail
\rightharpoondown
\rightharpoonup
\rightleftarrows
\rightleftharpoons
\rightrightarrows
\rightsquigarrow
\rightthreetimes
\risingdotseq
\rmoustache
\Rsh
\rtimes
\Xi
\xi
\zeta
\wedge
\widehat
\widetilde
\wp
\wr
\searrow
\sec
\setminus
\sharp
\shortmid
\shortparallel
\Sigma
\sigma
\sim
\simeq
\sin
\sinh
\smallfrown
\smallsetminus
\smallsmile
\smile
\spadesuit
\sphericalangle
\sqcap
\sqcup
\sqrt
\sqsubset
\sqsubseteq
\sqsupset
\sqsupseteq
\square
\star
\Subset
\subset
\subseteq
\subseteqq
\subsetneq
\subsetneqq
\succ
\succapprox
\succcurlyeq
\succeq
\succnapprox
\succnsim
\succsim
\sum
\Supset
\supset
\supseteq
\supseteqq
\supsetneq
\supsetneqq
\surd
\swarrow
\sup
\tan
\tanh
\tau
\therefore
\Theta
\theta
\thickapprox
\thicksim
\tilde
\time
\times
\top
\triangle
\triangledown
\triangleleft
\trianglelefteq
\triangleq
\triangleright
\trianglerighteq
\twoheadleftarrow
\twoheadrightarrow
\ulcorner
\underbrace
\underleftarrow
\underleftrightarrow
\underline
\underrightarrow
\unlhd
\unrhd
\Uparrow
\uparrow
\Updownarrow
\updownarrow
\upharpoonleft
\upharpoonright
\uplus
\Upsilon
\upsilon
\upuparrows
\urcorner
\varepsilon
\varkappa
\varnothing
\varphi
\varpi
\varpropto
\varrho
\varsigma
\varsubsetneq
\varsubsetneqq
\varsupsetneq
\varsupsetneqq
\vartheta
\vartriangle
\vartriangleleft
\vartriangleright
\Vdash
\vDash
\vdash
\vdots
\vec
\vee
\veebar
\Vvdash

2
lib/command/amsxtra.lst Executable file
View File

@ -0,0 +1,2 @@
\accentedsymbol{}
\actualchar

1
lib/command/array.lst Executable file
View File

@ -0,0 +1 @@
\firsthline

0
lib/command/babel.lst Executable file
View File

17
lib/command/bar.lst Executable file
View File

@ -0,0 +1,17 @@
\bar{}{}[]
\hlineon
\legend{}{}
\sethspace{}
\setlinestyle{}
\setdepth{}
\setnumberpos{}
\setprecision{}
\setstretch{}
\setstyle{}
\setwidth{}
\setxaxis{}{}{}
\setxname{}
\setxvaluetyp{}
\setyaxis[]{}{}{}
\setyname{}

2
lib/command/bezier.lst Executable file
View File

@ -0,0 +1,2 @@
\bezier{}(,)(,)(,)
\qbezier[](,)(,)(,)

13
lib/command/calc.lst Executable file
View File

@ -0,0 +1,13 @@
\addtocounter{}{}
\advance
\Alph{}
\alph{}
\arabic{}
\divide
\equal
\fnsymbol{}
\multiply
\newcounter{}[]
\setcounter{}{}
\stepconnter{}
\the

9
lib/command/changebar.lst Executable file
View File

@ -0,0 +1,9 @@
\cbdelete[]
\cbend
\cbstart
changebargrey
\changebarsep
\changebarwidth
\deletebarwidth
\nochangebars
\outerbarstrue

3
lib/command/chicago.lst Executable file
View File

@ -0,0 +1,3 @@
\citeA{}
\citeN{}
\citeyear{}

6
lib/command/cite.lst Executable file
View File

@ -0,0 +1,6 @@
\@cite
\cite{}
\citen
\shortcite
\shortciteA
\shortciteN

0
lib/command/color.lst Executable file
View File

6
lib/command/curves.lst Executable file
View File

@ -0,0 +1,6 @@
\closecurve
\curve[]()
\curvedashes{}
\curvesymbol{}
\tagcurve[]()
\scaleput(){}

50
lib/command/doc.lst Executable file
View File

@ -0,0 +1,50 @@
\*
\@idxitem
\AltMacroFont
\bslash
\changes{}{}{}
\CharacterTable{}
\CheckModules
\CheckSum{}
\CodelineIndex
\CodelineNumbered
\DeleteShortVerb
\DescribeEnv{}
\DescribeMacro{}
\DisableCrossrefs
\docdate
\DocInput{}
\DocstyleParms
\DoNotIndex
\DontCheckModules{}
\lndexlnput{}
\IndexMin
\IndexParms
\indexPrologue{}
\levelchar
\MacrocodeTopsep
\MacroFont
\MacroIndent
\MacroTopsep
\main
\MakePrivateLetters
\MakeShortVerb{}
\meta{}
\Module
\PrintChanges
\PrintDescribeEnv
\PrintDescribeMacro
\PrintIndex
\PrintMacroName
\ps@titlepage
\quotechar
\RecordChanges
\SortIndex
\SpecialEnvIndex
\SpecialEscapechar
\SpecialIndex
\SpecialMainIndex
\SpecialUsageIndex
\StopEventually
\theCodelineNo
\verbatimchar

3
lib/command/eclbip.lst Executable file
View File

@ -0,0 +1,3 @@
\brush{}
\leftnode[]{}
\match

5
lib/command/ecltree.lts Executable file
View File

@ -0,0 +1,5 @@
\chunk[]{}
\GapDepth
\GapWidth
\drawwith{}
\EdgeLabelSep

13
lib/command/eepic.lst Executable file
View File

@ -0,0 +1,13 @@
\arc{}{}{}
\circle{}
\circle*{}
\ellipse{}{}
\ellipse*{}{}
\filltype{}
\line(){}
\maxovaldiam
\oval(){}
\path()
\spline()
\Thicklines
\thicklines

2
lib/command/endfloat.lst Executable file
View File

@ -0,0 +1,2 @@
\figureplace
\nomarkersintext

2
lib/command/endnotes.lst Executable file
View File

@ -0,0 +1,2 @@
\endnote
\enotesize

16
lib/command/epic.lst Executable file
View File

@ -0,0 +1,16 @@
\shortstack
\allinethickness{}
\dashline[]{}[]()
\dashlinestretch
\dottedline[]{}()
\drawline[]()
\drawlinestretch
\grid(,)(,)[,]
\jput(){}
\matrixput()(){}(){}{}
\multyput
\multiputlist
\picsquare
\rightnode[]{}
\match{}{}
\leftnode{}{}

4
lib/command/epsfig.lst Executable file
View File

@ -0,0 +1,4 @@
\epsfig{}
\psfigdriver{}
\psdraft
\psfull

1
lib/command/eufrac.lst Executable file
View File

@ -0,0 +1 @@
\EuFrak

1
lib/command/euscript.lst Executable file
View File

@ -0,0 +1 @@
\EuScript

6
lib/command/fancybox.lst Executable file
View File

@ -0,0 +1,6 @@
\cornersize{}
\cornersize*{}
\doublebox{}
\shadowbox{}
\ovalbox{}
\Ovalbox{}

13
lib/command/fancyheadings.lst Executable file
View File

@ -0,0 +1,13 @@
\cfoot[]{}
\chead[]{}
\fancyplain{}{}
\footrule
\footrulewidth
\headrule
\headrulewidth
\headwidth
\lfoot
\lhead
\rfoot
\rhead

6
lib/command/float.lst Executable file
View File

@ -0,0 +1,6 @@
\floatname
\floatplacement
\floatstyle
\listof
\newfloat{}{}{}{}
\restylefloat{}

1
lib/command/floatfig.lst Executable file
View File

@ -0,0 +1 @@
\initfloatingfigs

0
lib/command/fontenc.lst Executable file
View File

0
lib/command/graphicx.lst Executable file
View File

0
lib/command/grapics.lst Executable file
View File

1
lib/command/hangcaption.lst Executable file
View File

@ -0,0 +1 @@
\isucaption

2
lib/command/hhline.lst Executable file
View File

@ -0,0 +1,2 @@
\hhline
\hrule

17
lib/command/ifthen.lst Executable file
View File

@ -0,0 +1,17 @@
\whiledo
\Yarea
\Ysize
\Xsize
\Xarea
\boolean{}
\ifthenelse
\equal{}{}
\isodd
\lengthtest{}
\newboolean
\newif
\newX
\newY
\not
\or
\setboolean

4
lib/command/index.lst Executable file
View File

@ -0,0 +1,4 @@
\index{}{}
\indexproofstyle
\newindex{}{}{}{}
\renewindex{}{}{}{}

0
lib/command/inputenc.lst Executable file
View File

5
lib/command/latexsym.lst Executable file
View File

@ -0,0 +1,5 @@
\leadsto
\Box
\Join
\lhd
\Diamond

1
lib/command/layout.lst Executable file
View File

@ -0,0 +1 @@
\layout

5
lib/command/longtable.lst Executable file
View File

@ -0,0 +1,5 @@
\endfirsthead
\endfoot
\endhead
\endlastfoot
\kill

942
lib/command/main_cmd.lst Executable file
View File

@ -0,0 +1,942 @@
\'
\(
\)
\,
\-
\/
\:
\;
\=
\>
\!
\@addtoreset{}{}
\@cite
\@dotsep
\@dottedtocline{}{}{}{}{}
\@evenfoot
\@evenhead
\@makecaption{}{}
\@makefigcaption
\@makefnmark
\@makefntext
\@mkboth
\@oddfoot
\@oddhead
\@pnumwidth
\@ptsize
\@rightskip
\@seccntformat
\@startsection{}{}{}{}{}{}
\@starttoc{}
\@thefnmark
\@tocrmarg
\`
\a'
\a=
\a'
\abovedisplayshortskip
\abovedisplayskip
abstract
\abstractname
\accent
\acro
\addcontentsline{}{}
\adddialect{}{}
\addlanguage{}
\addto
\addtocontents{}{}
\addtocounter{}{}
\addtolength{}{}
\AE
\aleph
\alsoname
\amalg
\Appendix
\appendix
\appendixname
array
\AtBeginDocument
\AtEndDocument
\AtEndOfClass
\AtEndOfPackage
\baselineskip
\baselinestretch
\batchfile{}
\batchinput
\Bbb
\begin{}
\belowdisplayshortskip
\belowdisplayskip
\bf
\bfdefault
Bflushleft
Bflushright
\bfseries
\bibhang
\bibindent
\bibitem[]{}
\bibliography{}
\bibliographystyle{}
\bibliographyunit[]
\bibname
\bibpunct
\bigcircle
\bigskip
\bigskipamount
bmatrix
\bmod
\boldmath
book
bookman
\botfigrule
\bottomcaption
\bottomfraction
bottomnumber
\boxed{}
bundle
\bye
calc
\caption[]{}
\caption*{}
\captionwidth
cases
catalan
\catcode
cc
\ccname
CD
center
\centering
centertags
changebar
\chapter{}
chapter
\chapter*{}
chapterbib
\chaptermark
\chaptername
chicago
Citation
\cite[]{}
citesort
\cleardoublepage
\clearemptydoublepage
\clearpage
\cline
\CodelineFont
collectmore
color
colordvi
columnbadness
\columnsep
\colunnseprule
\coluanwidth
comment
concrete
\contentsline{}{}{}
\contentsname
Cor
croatian
cropmarks
\csname
\CurrentOption
curves
czech
danish
dashjoin
\dblfigrule
\dblfloatpagefraction
\dblfloatsep
\dbltextfloatsep
\dbltopfraction
dbltopnumber
dcolumn
debugshow
\DeclareErrorFont
\DeclareFixedFont{}{}{}{}{}{}
\DeclareFontEncoding{}{}{}
\DeclareFontFamily{}{}{}
\DeclareFontShape{}{}{}{}{}{}
\DeclareFontSubstitution{}{}{}{}
\DeclareMathAlphabet{}{}{}{}{}
\DeclareMathOperator{}
\DeclareMathOperator*{}
\DeclareMathSizes{}{}{}{}
\DeclareMathSymbol{}{}{}{}
\DeclareMathVersion{}
\DeclareOption{}{}
\DeclareOption*{}
\DeclareSymbolFont{}{}{}{}{}
\DeclareSymbolFontAlphabet{}{}
Def
\defaulthyphenchar
deflist
delarray
\depth
description
\descriptionlabel
\displaybreak[]
\displaystyle
doc
document
\documentclass[]{}
\documentstyle[]{}
\dotfill
dottedjoin
\doublerulesep
doublespace
\dq
draft
draftcopy
drawjoin
\driver
dutch
dvips
dvitops
\ecaption
eclbip
ecltree
eepic
eepicemu
\em
\emergencystretch
\emph{}
empty
emtex
\enclname
\encodingdefault
\end{}
\endcsname
endfloat
\endpostamble
\endpreamble
english
\enlargethispage{}
\enlargethispage*
\enspace
\ensuremath{}
entry
\entrylabel
enumerate
enumerate
enumeration
enumi
enumii
enumiii
enumiv
environment
epic
epsfig
eqnarray
eqnarray*
\eqref
equation
equation
equation*
errorshow
esperanto
eucal
eufrak
euler
euscript
\evensidemargin
Exa
\ExecuteOptions
executivepaper
exscale
\externaldocument
\extracolsep
\extrarowheight
\extratabsurround
\faketableofcontents
\familydefault
fancy
fancybox
fancyheadings
\fbox{}
\fboxrule
\fboxsep
figure
figure
\figurename
figwindow
filecontents
\fill
finalcolumnbadness
final
\Finale
finnish
fixed
flatter
flalign
flalign*
fleqn
float
floatfig
floatingfigure
\floatpagefraction
\floatsep
\flq
\flqq
\flushbottom
\flushcolunms
flushleft
flushright
\fminilength
fminipage
fnpara
\fontdimen
\fontencoding{}
\fontfamily{}
\fontseries{}
\fontshape{}
\fontsize{}{}
\footnote{}
footnote
\footnotemark
\footnoterule
\footnotesep
\footnotesize
\footnotetext{}
footnpag
\footskip
\framebox[][]{}
FrameVerb
francais
french
french
\from{}{}
\frq
\frqq
ftnright
\fullref
\fussy
galician
garamond
gather
gather*
gathered
\generateFile{}{}{}
german
german
germanb
\glossary
\glossaryentry
\glq
\glqq
graphics
\grq
\grqq
hackalloc
hangcaption
harvard
\hdotsfor[]{}
\headheight
headings
\headsep
\headtoname
\height
\help
helvet
here
hhline
\hline
\hoffset
\hrulefill
\hspace
\hspace*
\Huge
\huge
\IfFileExists{}{}{}
\iflanguage{}{}{}
ifthen
\ignorespaces
\include{}
\includeonly{}
indentfirst
index
\indexentry
\indexname
infoshow
\init
\input
inputenc
\InputIfFileExists{}{}{}
\intertext{}
\intextsep
intlimits
isolatin1
\it
italian
\itdefault
\item
\itemindent
itemize
\itemsep
\itshape
jmb
\jot
\keepsilent
\l@chapter
\l@example
\l@figure
\l@paragraph
\l@part
\l@section
\1@subparagraph
\l@subsection
\l@subsubsection
\l@table
\label{}
\labelenumi
\labelenumii
\labelenumiii
\labelemuniv
\labelitemi
\labelitemii
\labelitemiii
\labelitemiv
\labelsep
\labelwidth
\landscape
landscape
\LARGE
\Large
\large
\lasthline
latexsym,
layout
\left
\leftmargin
\leftmark
legalpaper
Lem
Lentry
\Lentrylabel{}
leqno
letter
letterpaper
\letterspace
letterspace
\linebreak
\linethickness
\linewidth
list
\listfigurename
\listfiles
\listofexamples
\listoffigures
\listoftables
\listparindent
\listtablename
ln
\LoadClass[]{}[]
loading
\longpage
longtable
\lowercase
lrbox
lscape
\LTcapwidth
\LTchunksize
\LTleft
\LTpost
\LTpre
\LTright
lucid
lucidbrb
lucidbry
lucmath
\lVert
\lvert
\m@th
macro
macrocode
macrocode*
magyar
\makeatletter
\makeatother
\makebox[][]{}
\makeglossary
makeidx
\makelabel
\maketitle
\marginlabel{}
\marginpar[]{}
\marginparpush
\marginparsep
\marginparwidth
\markboth{}{}
\markright{}
\mathalpha
\mathbf
\mathbin
\mathcal
\mathclose
\mathindent
\mathit
\mathnormal
\mathop
\mathopen
\mathord
\mathpunct
\mathrel
\mathrm
\mathsf
\mathsfsl
\mathsurround
\mathtt
\mathversion
\matrix
matrix
MaxMatrixCols
\mbox{}
\mddefault
\mdseries
\medskip
\medskipamount
\medspace
\Mentry
\Mentrylabel
\message
minipage
minitoc
minitocdepth
minitocoff
mm
moreverb
mpfootnote
\Msg
\mspace
\mtcfont
\mtcindent
mtimes
mu
multibox
multicol
multicols
\multicolsep
\multicolumn
multind
multirow
multline
multline*
\multlinegap
myheadings
named
namelimits
\names
nar
natbib
\naturalwidth
nature
\NeedsTeXFormat{}[]
\negmedspace
\negthickspace
\negthinspace
newapa
\newblock
newcent
\newcolunmtype{}[]{}
\newcommand{}
\newenvironment{}[]{}{}
\newfont
\newindex
\newlength
newlfont
\newpage
\newsavebox{}
\nfssfont
\nocite{}
\nocorr
\nocorrlist
\nofiglist
\nofiles
\nohyphens
\noindent
nointlimits
nonamelimits
\nonfrenchspacing
\nonumber
\nopagebreak
\normalem
\normalfont
\normalmarginpar
\normalsize
norsk
nosumlimits
\notablist
\notag
Notes
notes
\numberline
nynorsk
\oddsidemargin
oldgerm
oldlfont
\oldstylenums
\onecolumn
openbib
\openin
\OptionNotUsed
order
\Ovalbox{}
\ovalbox{}
overcite
oztex
\p@enumi
\p@enumii
\p@enumiii
\p@enumiv
page
\pagebreak
\pagename
\pagenumbering
\pageref
\pagestyle
palatino
pandora
\paperheight
\paperwidth
\paragraph{}
paragraph
\parbox[]{}{}
parentequation
\parindent
\parsep
\parskip
\part{}
part
\part*{}
\partname
\partopsep
\PassOptionsToClass{}{}
\PassOptionsToPackage{}{}
pausing
pc
\phantom
Piautolist
picinpar
picture
pifont
Pilist
plain
\plainfootrulewidth
\plainheadrulewidth
pmatrix
polish
portland
\portrait
portrait
portuges
\postamble
\postinulticols
\preamble
\prefacename
\premulticols
\PreserveBackslash
\ProcessOptions
\ProcessOptions*
program
program
programbox
proof
\proofmodetrue
\protect
\providecommand
\ProvidesClass
\ProvidesFile
\ProvidesPackage
\ps@
\ps@plain
psamsfonts
psboxit
pstimesm
pt
\put
\putbib
\putfile
\qquad
\quad
quotation
Quote
quote
\raggedcolumns
\raggedleft
\raggedright
\raisebox{}[][]{}
\ratio
\ref{}
\refname{}
\refstepcounter
\reftextafter
\reftextbefore
\reftextcurrent
\reftextfaceafter
\reftextfacebefore
\reftextfaraway
\reftextvario{}{}
Rem
\renewconnnand{}
\renewenvironment{}[]{}{}
report
reqno
\RequirePackage
resume
\reversemarginpar
\right
\rightmargin
\rightmark
\rightskip
\rm
\rmdefault
\rmfamily
\Roman
\roman
Roman
roman
romanian
rotate
rotate
rotating
\rotcaption
\rotdriver
\rule
russian
\samepage
\sAppendix
\savebox{}[][]{}
Sbox
\sbox{}
\sc
\scdefault
\scriptscriptstyle
\scriptsize
\scriptstyle
\scshape
\secdef
secnumdepth
\section{}
section
\section*{}
\sectionmark
\see
\seename
\selectfont
\selectlanguage
seminar
\seriesdefault
\setlength
\setmargins
\setmarginsrb
\SetMathAlphabet
\setpapersize
\SetSymbolFont
\settodepth
\settoheight{}{}
\settowidth{}{}
\sf
\sfdefault
\sffamily
\shabox
shadow
\shadowsize
\shapedefault
\shapepar
shapepar
\shortindexingoff
\shortindexingon
\shortpage
\shoveleft
\shoveright
\showcols
showidx
\showprogress
showtags
sideways
sidewaysfigure
sidewaystable
\skip
\sl
\sldefault
slides,
\sloppy
slovak
slovene
\slshape
\small
smallmatrix
\smallskip
\smallskipamount
\SortNoop
\sout
sp
\space
spacing
spanish
split
\squarepar
\ss
StandardModuleDepth
\stop
\stretch{}
\string
\strut
subarray
subequations
subfigure
\subitem
\subparagraph{}
subparagraph
\subsection{}
subsection
\substack
\subsubitem
\subsubsection{}
subsubsection
sumlimits
\suntaxonly
supertab
supertabular
supertabular*
\suppressfloats
\swabfamily
swedish
\symbol
syntonly
t1enc
tabbing
\tabbingsep
\tabcolsep
\table
table
\tablename
\tableofcontents
\tableplace
tabular
tabular*
TabularC
tabularx
tabularx
\tabularxcolunm
tabwindow
tbtags
\text{}
\textbf{}
\textfloatsep{}
\textfraction{}
\textfrak{}
\textgoth{}
\textheight{}
\textit{}
\textmd{}
\textnormal{}
\textrm{}
\textsc{}
\textsf{}
\textsl{}
\textstyle{}
\textswab{}
\texttt{}
\textup{}
textures
\textwidth
thebibliography
\thechapter
\theendnotes
\heenumi
\theenumii
\theenumiii
\theenumiv
\theequation
\thefootnote
theglossary
theindex
\thempfootnote
theorem
\thepage
\TheSbox
\thesection
\thesubfigure
\thesubsection
\thickspace
\thinlines
\thinspace
\thispagestyle
threeparttable
threeparttable
times
\tiny
tocdepth
\today
\tolerance
\topcaption
\topfigrule
\topfraction
\topmargin
topnumber
\topsep
\topskip
\totalheight
totalnumber
tracefnt
\tracingfonts
tracingmulticols
\tracingtabularx
trees
\tt
\ttdefault
\ttfamily
turkish
turn
\twlrm
\twocolumn
twocolumn
twoside
\typeout
ulem
\ULforem
\uline
unbalance
\unboldmath
\underset
\unitlength
\unskip
\updefault
upref
\upshape
\usage
\usebox{}
\usecounter
\usefont
\usepackage[]{}[]
\uwave
\vadjust
\value
varioref
\vector
Ventry
\verb
\verb*
\vfill
\vline
vmargin
\voffset
\vpageref
\vref
\vrule
\vspace
\vspace*
warningshow
\WideMargins
\width
window
\wlog
wrapfig
wrapfig
wrapfigure
\xleftarrow
\xout
xr
\xspace
xspace

2
lib/command/minitoc.lst Executable file
View File

@ -0,0 +1,2 @@
\dominitoc
\minitoc

2
lib/command/multibox.lst Executable file
View File

@ -0,0 +1,2 @@
\multiframe()(){}()[]{}
\multimake()(){}()[]{}

0
lib/command/multicol.lst Executable file
View File

3
lib/command/multind.lst Executable file
View File

@ -0,0 +1,3 @@
\index{}
\makeindex{}{}
\printindex{}{}

2
lib/command/multirow.lst Executable file
View File

@ -0,0 +1,2 @@
\multirow{}[]{}[]{}
\multirowsetup

2
lib/command/oldgerm.lst Executable file
View File

@ -0,0 +1,2 @@
\frakfamily
\gothfamily

9
lib/command/pifont.lst Executable file
View File

@ -0,0 +1,9 @@
\ding{}
dingautolist
\dingfill
\dingline
dinglist
\Pifill{}{}
\Pifont{}
\Piline{}{}
\Pisymbol{}{}

3
lib/command/psboxit.lst Executable file
View File

@ -0,0 +1,3 @@
\psboxit{}{}
\PScommands
\spbox

3
lib/command/shadow.lst Executable file
View File

@ -0,0 +1,3 @@
\sboxrule
\sboxsep
\sdim

2
lib/command/shapepar.lst Executable file
View File

@ -0,0 +1,2 @@
\diamondpar
\heartpar

3
lib/command/subfigure.lst Executable file
View File

@ -0,0 +1,3 @@
\subfigcapskip
\subfigtopskip
\subfigure

5
lib/command/supertab.lst Executable file
View File

@ -0,0 +1,5 @@
\tablecaption{}
\tablefirsthead{}
\tablehead{}
\tablelasttail{}
\tabletail{}

1
lib/command/tabularx.lst Executable file
View File

@ -0,0 +1 @@
\arraybackslash

6
lib/command/theorem.lst Executable file
View File

@ -0,0 +1,6 @@
\newtheorem{}{}
\theorembodyfont{}
\theoremheaderfont{}
\theorempostskipamount{}
\theorempreskipamount{}
\theoremstyle{}

5
lib/command/trees.lst Executable file
View File

@ -0,0 +1,5 @@
\branch{}{}{}:,.
\branchlabels{}{}{}
\leaf{}{}{}
\root() .
\tbranch{}{}{}:,.

11
lib/command/verbatim.lst Executable file
View File

@ -0,0 +1,11 @@
listing
listing*
listingcont
listingcont*
\listinginput[]{}{}
\verbatimtabinput[]{}
verbatim
verbatim*
verbatimcmd
verbatimtab
verbatimwrite

3
lib/command/version.lst Executable file
View File

@ -0,0 +1,3 @@
\excludeversion
\includeversion{}
version

1
lib/command/xspace.lst Executable file
View File

@ -0,0 +1 @@
\@

11
lib/conf/encode.lst Executable file
View File

@ -0,0 +1,11 @@
######################################################
# Tk LaTeX Editor
# Distributed under GNU Public License
# Author: Sergey Kalinin (aka BanZaj) banzaj@lrn.ru
# Copyright (c) "CONERO lab", 2004, http://conero.lrn.ru
######################################################
#
# Encode listing format: latex encode - tcl encode
#
######################################################
latin1 iso8859-1

22
lib/conf/package.lst Executable file
View File

@ -0,0 +1,22 @@
######################################################
# Tk LaTeX Editor
# Distributed under GNU Public License
# Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru
# Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru
######################################################
#
# LaTeX pacckage list
#
######################################################
babel
color
grapics
graphicx
fontenc
inputenc
latexsym
longtable
multicol

161
lib/conf/tle.conf Executable file
View File

@ -0,0 +1,161 @@
######################################################
# Tk LaTeX Editor
# Distributed under GNU Public License
# Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru
# Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru
######################################################
######################################################
# MAIN SETTINGS
######################################################
## LOCALE SETTING ##
set locale "en"
## BACKUP FILES ##
set backup(create) "Yes"
set backup(del) "No"
set backup(autosave) "No"
## HELP SYSTEM ##
set help(encode) "koi8-r"
## ISPELL SETTINGS ##
set ispell_lib /usr/lib/ispell
set ispell_startindex "1.0"
## DIRECTORY SETTING ##
set dir(tmp) [file join $env(HOME) tmp]
set dir(doc) [file join $env(HOME) doc my]
## TIMERS ##
## structure refresh time ##
## default 1 min ##
set timers(refresh) 60000
## autosave opened files time ##
## default 5 min ##
set timers(autosave) 300000
######################################################
# USER INTERFACE SETTINGS
######################################################
## MAIN WINDOW GEOMETRY ##
set gui(geometry) "750x550+0+0"
## NoteBook Tabs Specifies the side where to place the label of the pages. ##
## must be "top" or "bottom"
set gui(tabsLabel) "top"
## IMAGE THEME ##
## must be "default" "stroke" ##
set theme "stroke"
## SETING FONTS ##
set font(normal) "Arial 10 normal roman"
set font(bold) "Arial 10 bold roman"
## SETING COLOR ##
set color(selectbg) "#55c4d1"
set color(bg) "#bbbbbb"
set color(editBg) "#cccccc"
set color(editFg) "#000000"
set color(editTitleNormal) "#000000"
set color(editTitleModify) "#0021ff"
set color(lineNumberBg) "#bbbbbb"
set color(lineNumberFg) "#000000"
## HighLightning Color ##
set color(procName) "#0021ff"
set color(operator) "#0000a8"
set color(keyWord) "#0000a8"
set color(param) "#6a0082"
set color(subParam) "#008282"
set color(comments) "#9b9b9b"
set color(var) "#e50000"
set color(string) "#168400"
set color(brace) "#d33434"
set color(braceBG) "#000000"
set color(braceFG) "#00feff"
set color(percent) "#a500c6"
set color(bindKey) "#a500c6"
## RELIEF TOOL BUTTONS##
## must be flat, groove, raised, ridge, solid, sunken or link ##
set relief(btn) link
## RELIEF TOOL MENUS##
## must be flat, groove, raised, ridge, solid, or sunken ##
set relief(menu) groove
## SHOW TOOLBARS ##
## must be: tool(toolbar_file_name) flag
## where flag = 0 - hide, 1- show
set tool(main) 1
set tool(insert) 0
set tool(math) 0
set tool(format) 0
######################################################
# EDITOR SETTINGS
######################################################
## EDITOR FONTS ##
set font(editNormal) "fixed"
set font(editBold) "fixed"
## EXTERNAL EDITOR ##
set editor(extern) "No"
set editor(prog) "/usr/bin/emacs"
## AUTOMATICALLY WORD WRAPPING ##
set editor(wrap) "word" ;# must be: none, word or char
# this auto wraping string if string lenght more then editor(strLen)
# must be "No" or "Yes"
set editor(strWrap) "Yes"
set editor(strLen) 100
######################################################
# CONVERT/PREVIEW/PRINT SETTINGS
######################################################
## CONVERT ##
## %fileName - current file name
## %dirName - currennt directory name
set convert_cmd(dvi) "latex"
set convert_cmd(ps) "dvips -Pwww -j0 -ta4 -o %dirName/%fileName.ps %dirName/%fileName.dvi"
set convert_cmd(pdf) "ps2pdf %dirName/%fileName.ps"
set convert_cmd(html) "latex2html -no_navigation -split 0"
set convert_cmd(img) "convert"
## PREVIEW ##
set preview_cmd(dvi) "xdvi"
set preview_cmd(ps) "gv"
set preview_cmd(pdf) "acroread"
set preview_cmd(html) "mozilla"
######################################################
# MATH AND TEXT RENDERING PARAMETERS
######################################################
# image resolution
set render(res) "100x100"
# image format
set render(format) "gif"
# background color
set render(bg) "white"
# foreground color
set render(fg) "black"
# on/off transparency
set render(trans) 0
# on/off antialliasing
set render(aa) 1
######################################################
#
######################################################
set thumb(show) "Yes"
set thumb(resolution) "100x100"
set thumb(format) "png" ;# must be jpg, gif, png

94
lib/conf/tmp/first_proj.tex~ Executable file
View File

@ -0,0 +1,94 @@
%-----------------------------------------------------%
% %
% Подготовка научных статей, широкая страница %
% (предусмотрена работа с рисунками) %
% %
%-----------------------------------------------------%
\documentclass[12pt]{article}
\usepackage[koi8-r]{inputenc}
\usepackage[english,russian]{babel}
\usepackage{a4wide}
\usepackage{graphicx}
\begin{document}
\section{Задание}
Разработать программу для ввода данных и формирования файла для передачи в банк
для системы пакетных платежей
\subsection{Входные данные}
\begin{itemize}
\item Название организации
\item ФИО руководителя
\item ФИО главного бухгалтера
\item ФИО работника
\item N счёта работника 20-ти значный
\item Сумма платежа
\item Назначение платежа
\item Дата платежа
\end{itemize}
\subsection{Выходные данные}
\begin{itemize}
\item Печатная ведомость по прилагаемому образцу
\item Файл содержащий список работников
\end{itemize}
\subsection{Поддерживаемые функции}
\begin{itemize}
\item Программа должна позволять вести список работников (ФИО, N счёта)
\item Вести список платежей для каждого работника (Дата платежа, наименование,
сумма)
\item Формировать файл и распечатывать ведомость
\item Возможность ввода и редактирования параметров для каждого предприятия (см.
входные данные)
\end{itemize}
\section{Реализация}
Данную программу планируется реализовать на языке C++, с использованием
графической библиотеки WxWindow - это обеспечит независимость от используемой
платформы (Linux, Windows, ...)
В качестве хранилища данных использовать MySQL либо Paradox (второе
предпочтительнее)
\section{Структура классов}
\subsection{Personal}
Данный класс представляет работника предприятия. Доступные методы:
\textbf{\emph{add}} (\textbf{String} \textit{LastName}, \textbf{String}
\textit{FirstName}, \textbf{String} \textit{MiddleName}, \textbf{Int}
\textit{Schet}) - добавление работника
\textbf{\emph{edit}} (\textbf{Int} \textit{Id}, (\textbf{String} \textit{LastName},
\textbf{String} \textit{FirstName}, \textbf{String} \textit{MiddleName},
\textbf{Int} \textit{Schet}) - редактирование
\textbf{\emph{del}} (\textbf{Int} \textit{Id}) - удаление
\subsection{Payment}
Класс платежа. Методы:
\textbf{\emph{add}} (\textbf{Int} \textit{IdPerson}, \textbf{Int}
\textit{Summa}, \textbf{String} \textit{Date}, \textbf{String}
\textit{PaymentName}) - добавление платежа
\textbf{\emph{edit}} (\textbf{Int} \textit{Id}, \textbf{Int} \textit{IdPerson},
\textbf{Int} \textit{Summa}, \textbf{String} \textit{Date}, \textbf{String}
\textit{PaymentName}) - редактирование платежа
\textbf{\emph{del}} (\textbf{Int} \textit{Id}) - удаление
\end{document}

69
lib/gui/toolbar/format Executable file
View File

@ -0,0 +1,69 @@
######################################################
# Tk LaTeX Editor
# Distributed under GNU Public License
# Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru
# Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru
######################################################
# Format ToolBar
menu insertsection.gif "Sections" {
cmd "AddTextFont title" "Title" "Alt-t"
cmd "AddTextFont author" "Author" "Alt-a"
cmd "AddTextFont date" "Date" "Alt-d"
cmd "AddTextCommand maketitle" "Make title"
cmd "AddTextDouble begin{tilepage} end{tilepage}" "Title page"
cmd "AddTextCommand tableofcontents" "Table of Contents"
cmd "AddTextCommand listoftables" "List of Tables"
cmd "AddTextCommand listoffigures "List of Figures"
cmd "AddTextDouble begin{thebibliography} end{thebibliography}" "The Bibliography"
cmd "AddTextCommand appendix "Appendix"
cmd separator
cmd "AddTextFont part" "Part"
cmd "AddTextFont chapter" "Chapter"
cmd "AddTextFont section" "Section"
cmd "AddTextFont subsection" "SubSection"
cmd "AddTextFont subsubsection" "SubSubSection"
cmd "AddTextFont paragraph" "Paragraph"
cmd "AddTextFont subparagraph" "SubParagraph"
}
menu font_size.gif "Font size" {
cmd "AddTextFont tiny" "tiny"
cmd "AddTextFont scriptsize" "scriptsize"
cmd "AddTextFont footnotesize" "footnotesize"
cmd "AddTextFont small" "small"
cmd "AddTextFont normalsize" "Normal"
cmd "AddTextFont large" "large"
cmd "AddTextFont Large" "Large"
cmd "AddTextFont LARGE" "LARGE"
cmd "AddTextFont huge" "huge"
cmd "AddTextFont Huge" "Huge"
}
menu font_width.gif "Font type" {
cmd "AddTextFont textrm" "Romanic"
cmd "AddTextFont textsf" "Sans Serif"
cmd "AddTextFont texttt" "Typewriter Typeset"
cmd separator
cmd "AddTextFont textmd" "Middle Face"
cmd "AddTextFont textbf" "Bold Face"
cmd separator
cmd "AddTextFont textup" "Up"
cmd "AddTextFont textit" "Italic"
cmd "AddTextFont textsl" "Slanted"
cmd "AddTextFont textsc" "Small Caps"
}
button "AddTextFont emph" font_emph.gif "Emphasise"
button "AddTextDouble begin{center} end{center}" align_center.gif "Align center"
button "AddTextDouble begin{left} end{left}" align_left.gif "Align left"
button "AddTextDouble begin{right} end{right}" align_right.gif "Align right"
button "AddTextDouble begin{verbatim} end{verbatim}" verb.gif "Verbatim"
Separator

17
lib/gui/toolbar/insert Executable file
View File

@ -0,0 +1,17 @@
######################################################
# Tk LaTeX Editor
# Distributed under GNU Public License
# Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru
# Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru
######################################################
button "AddText itemize" itemize.gif "Add itemize list"
button "AddText enumerate" numerate.gif "Add enumerate list"
button "AddText image" image.gif "Insert image"
Separator
button "InsertTableDialog" table.gif "Add table"
button "AddText date" date_time.gif "Insert curent date-time" "Alt-d"

43
lib/gui/toolbar/main Executable file
View File

@ -0,0 +1,43 @@
# Main Toolbar file
# useage :
# "Command" image.file "Hint for baloon"
button "FileDialog new" new.gif "New file"
button "FileDialog open" open.gif "Open file"
button "FileDialog close" close.gif "Close"
Separator
button "FileDialog save" save.gif "Save file"
button "FileDialog save_as" save_as.gif "Save file as"
button "FileDialog save_all" save_all.gif "Save all"
Separator
button "CutPast undo" undo.gif "Undo"
Separator
button "CutPast cut" cut.gif "Cut into clipboard"
button "CutPast copy" copy.gif "Copy into clipboard"
button "CutPast paste" paste.gif "Paste from clipboard"
Separator
button "Find" find.gif "Find"
button "SpellCheck $nb.f[$nb raise].f.text" spellcheck.gif "Spell check"
Separator
button "Convert dvi" dvi.gif "Make DVI"
button "Preview dvi" dvi_preview.gif "View DVI" "Alt-F5"
button "Convert ps" ps.gif "Make PS"
button "Preview ps" ps_preview.gif "View PS" "Alt-F6"
button "Convert pdf" pdf.gif "Convert to PDF"
button "Preview pdf" pdf_preview.gif "View PDF" "Alt-F7"
button "Convert html" htmlconvert.gif "Convert to HTML"
button "Preview html" html_preview.gif "View HTML"
Separator
button "PrintDialog print" print.gif "Print ..."

106
lib/gui/toolbar/math Executable file
View File

@ -0,0 +1,106 @@
########################################################
# Tk LaTeX Editor
# Distributed under GNU Public License
# Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru
# Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru
########################################################
# Mathematical ToolBar
# Author: Constantin i Mikhailenko (Const)
########################################################
menu math/equation.gif "Math mode" {
cmd "AddTextDouble begin{math} end{math}" "math"
cmd "AddTextMath ( )" "( ... )"
cmd "AddTextMath $ $" "$ ... $"
cmd separator
cmd "AddTextDouble begin{displaymath}\n end{displaymath}" "displaymath"
cmd "AddTextMath \[ \]" "[ ... ]"
cmd "AddTextMath $$ $$" "$$ ... $$"
cmd separator
cmd "AddTextDouble begin{equation}\n end{equation}" "equation"
cmd "AddTextDouble begin{eqarray}\n end{eqarray}" "eqarray"
}
menu math/alpha-nu.gif "Greek 1" {
imagecmd "AddTextCommand alpha" "\alpha" math/alpha.gif
imagecmd "AddTextCommand beta" "\beta" math/beta.gif
imagecmd "AddTextCommand gamma" "\gamma" math/gamma.gif
imagecmd "AddTextCommand delta" "\delta" math/delta.gif
imagecmd "AddTextCommand zeta" "\zeta" math/zeta.gif
imagecmd "AddTextCommand epsilon" "\epsilon" math/epsilon.gif
imagecmd "AddTextCommand varepsilon" "\varepsilon" math/varepsilon.gif
imagecmd "AddTextCommand eta" "\eta" math/eta.gif
imagecmd "AddTextCommand theta" "\theta" math/theta.gif
imagecmd "AddTextCommand vartheta" "\vartheta" math/vartheta.gif
imagecmd "AddTextCommand iota" "\iota" math/iota.gif
imagecmd "AddTextCommand kappa" "\kappa" math/kappa.gif
imagecmd "AddTextCommand lambda" "\lambda" math/lambda.gif
imagecmd "AddTextCommand mu" "\mu" math/mu.gif
imagecmd "AddTextCommand nu" "\nu" math/nu.gif
}
menu math/xi-omega.gif "Greek 2" {
imagecmd "AddTextCommand xi" "\xi" math/xi.gif
imagecmd "AddTextCommand tau" "\tau" math/tau.gif
imagecmd "AddTextCommand upsilon" "\upsilon" math/upsilon.gif
imagecmd "AddTextCommand pi" "\pi" math/pi.gif
imagecmd "AddTextCommand varpi" "\varpi" math/varpi.gif
imagecmd "AddTextCommand rho" "\rho" math/rho.gif
imagecmd "AddTextCommand varrho" "\varrho" math/varrho.gif
imagecmd "AddTextCommand sigma" "\sigma" math/sigma.gif
imagecmd "AddTextCommand varsigma" "\varsigma" math/varsigma.gif
imagecmd "AddTextCommand o" "o" math/omikron.gif
imagecmd "AddTextCommand \phi" "\phi" math/phi.gif
imagecmd "AddTextCommand varphi" "\varphi" math/varphi.gif
imagecmd "AddTextCommand chi" "\chi" math/chi.gif
imagecmd "AddTextCommand psi" "\psi" math/psi.gif
imagecmd "AddTextCommand omega" "\omega" math/omega.gif
}
menu math/omega.gif "Greek" {
imagecmd "AddTextCommand Gamma" "\Gamma" math/gamma.gif
imagecmd "AddTextCommand Delta" "\Delta" math/delta.gif
imagecmd "AddTextCommand Theta" "\Theta" math/theta.gif
imagecmd "AddTextCommand Xi" "\Xi" math/xi.gif
imagecmd "AddTextCommand Upsilon" "\Upsilon" math/upsilon.gif
imagecmd "AddTextCommand Pi" "\Pi" math/pi.gif
imagecmd "AddTextCommand Sigma" "\sigma" math/sigma.gif
imagecmd "AddTextCommand Phi" "\Phi" math/phi.gif
imagecmd "AddTextCommand Psi" "\Psi" math/psi.gif
imagecmd "AddTextCommand Omega" "\omega" math/omega.gif
}
menu math/accent.gif "Accents" {
imagecmd "AddTextFont hat" "\hat{}" math/hat.gif
imagecmd "AddTextFont check" "\check{}" math/check.gif
imagecmd "AddTextFont breve" "\breve{}" math/breve.gif
imagecmd "AddTextFont acute" "\acute{}" math/acute.gif
imagecmd "AddTextFont grave" "\grave{}" math/grave.gif
imagecmd "AddTextFont tilde" "\tilde{}" math/tilde.gif
imagecmd "AddTextFont bar" "\bar{}" math/bar.gif
imagecmd "AddTextFont vec" "\vec{}" math/vec.gif
imagecmd "AddTextFont dot" "\dot{}" math/dot.gif
imagecmd "AddTextFont ddot" "\ddot{}" math/ddot.gif
cmd separator
imagecmd "AddTextFont widehat" "\widehat{}" math/widehat.gif
imagecmd "AddTextFont widetilde" "\widetilde{}" math/widetilde.gif
}
menu math/math_font.gif "Mathematical fonts" {
cmd "AddTextFont mathnormal" "Normal"
cmd separator
cmd "AddTextFont mathrm" "Romanic"
cmd "AddTextFont mathbf" "Boldface"
cmd "AddTextFont mathsf" "SansSerif"
cmd "AddTextFont mathtt" "TypeWriter Typeset"
cmd "AddTextFont mathit" "Italic"
cmd separator
cmd "AddTextFont mathcal" "Calligraphic"
cmd separator
cmd "AddTextFont boldmath" "BoldMath"
cmd "AddTextFont unboldmath" "UnboldMath"
}

53
lib/modules/about.tcl Executable file
View File

@ -0,0 +1,53 @@
########################################################
# Tk LaTeX Editor
# Distributed under GNU Public License
# Author: Sergey Kalinin banzaj@lrn.ru
# Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru
########################################################
## ABOUT DIALOG ##
proc AboutDialog {} {
global dir tree nb ver font release
set w .about
if {[winfo exists $w]} {
destroy $w
}
toplevel $w
wm title $w [::msgcat::mc "About ..."]
#wm resizable $w 0 0
wm transient $w .
frame $w.frmImg -borderwidth 2 -relief ridge -background black
image create photo imgAbout -format gif -file [file join $dir(img) tle.gif]
image create photo imgConero -format gif -file [file join $dir(img) conero.gif]
label $w.frmImg.lblImg -image imgAbout -background black
pack $w.frmImg.lblImg -side top -fill x
frame $w.frmlbl -borderwidth 2 -relief ridge -background "#8700d1"
label $w.frmlbl.lblVersion -text "[::msgcat::mc Version] $ver$release"\
-background "#8700d1" -foreground black
label $w.frmlbl.lblAuthorName -text "[::msgcat::mc Authors]:"\
-background "#8700d1" -foreground black
label $w.frmlbl.lblAuthor1 -text "Sergey Kalinin (aka BanZaj), banzaj@lrn.ru"\
-background "#8700d1" -foreground black
label $w.frmlbl.lblAuthor2 -text "Constantin I Makhailenko (aka Const), const@mail.ru"\
-background "#8700d1" -foreground black
pack $w.frmlbl.lblVersion $w.frmlbl.lblAuthorName $w.frmlbl.lblAuthor1 $w.frmlbl.lblAuthor2 -side top -padx 5
pack $w.frmImg -side top -fill x
pack $w.frmlbl -side top -expand true -fill both
bind $w <Escape> "destroy .about"
bind $w <Return> "destroy .about"
#
}

234
lib/modules/addtext.tcl Executable file
View File

@ -0,0 +1,234 @@
######################################################
# TkTeXEditor
# Distributed under GNU Public License
# Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru
# Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru
######################################################
proc AddText {action} {
global dir font color nb
set node [$nb raise]
if {$node == "" || $node == "debug"} {return}
set text "$nb.f$node.f.text"
set pos [$text index insert]
set curLine [lindex [split $pos "."] 0]
set cursor [lindex [split $pos "."] 1]
set editLine [$text get $curLine.0 $pos]
set types {
{"EPS" {.eps}}
{"PDF" {.pdf}}
{"PNG" {.png}}
{"JPG" {.jpg}}
{"GIF" {.gif}}
}
set selIndex [$text tag ranges sel]
if {$selIndex != ""} {
set posBegin [lindex $selIndex 0]
set posEnd [lindex $selIndex 1]
set curLine [string range $posBegin 0 [expr [string first "\." $posBegin] - 1]]
set cursor [string range $posBegin [expr [string first "\." $posBegin] + 1] end]
set endLine [string range $posEnd 0 [expr [string first "\." $posEnd] - 1]]
set endCur [string range $posEnd [expr [string first "\." $posBegin] + 1] end]
set selText [$text get $posBegin $posEnd]
} else {
set posBegin "$curLine.$cursor"
set endLine [expr $curLine +1]
set endCur 0
}
switch -- $action {
enumerate {
#insert - 1 chars wordstart" "insert wordend - 1 chars"
$text insert $posBegin "\\begin\{enumerate\}\n"
$text insert [expr $curLine +1].0 "\\item \n"
$text insert [expr $curLine +2].0 "\\end\{enumerate\}"
set t [$text get $posBegin $curLine.end]
set curPos "[expr $curLine + 1]\.end"
}
image {
set file [tk_getOpenFile -initialdir $dir(doc) -filetypes $types -parent .\
-title "[::msgcat::mc "Select image"]"]
#set fileName [file tail $file]
if {$file == ""} {
return
}
$text insert $posBegin "\\includegraphics\[\]\{$file\}\n"
set t [$text get $posBegin $curLine.end]
set curPos "$curLine\.[string last "\\" $t]"
}
itemize {
$text insert $posBegin "\\begin\{itemize\}\n"
$text insert [expr $curLine +1].0 "\\item \n"
$text insert [expr $curLine +2].0 "\\end\{itemize\}"
set t [$text get $posBegin $curLine.end]
set curPos "[expr $curLine +1]\.end"
}
item {
set editLine [$text get [expr $curLine - 1].0 $pos]
if [regexp -nocase -all -- {(\\item)} $editLine match v1] {
$text insert $curLine.0 "\\item "
set curPos "$curLine\.6"
} else {
return
}
}
date {
set editLine [$text get [expr $curLine - 1].0 $pos]
set unixTime [exec date +%s]
set dateTime [clock format $unixTime -format "%d.%m.%Y, %H:%M:%S"]
$text insert $curLine.0 "$dateTime"
set curPos "$curLine\.end"
}
}
$text mark set insert $curPos
$text see insert
}
######################################################
proc AddTextFont {action} {
global dir font color nb
set node [$nb raise]
if {$node == "" || $node == "debug"} {return}
set text "$nb.f$node.f.text"
set pos [$text index insert]
set curLine [lindex [split $pos "."] 0]
set cursor [lindex [split $pos "."] 1]
set editLine [$text get $curLine.0 $pos]
set selIndex [$text tag ranges sel]
if {$selIndex != ""} {
set posBegin [lindex $selIndex 0]
set posEnd [lindex $selIndex 1]
set curLine [string range $posBegin 0 [expr [string first "\." $posBegin] - 1]]
set cursor [string range $posBegin [expr [string first "\." $posBegin] + 1] end]
set endLine [string range $posEnd 0 [expr [string first "\." $posEnd] - 1]]
set endCur [string range $posEnd [expr [string first "\." $posBegin] + 1] end]
set selText [$text get $posBegin $posEnd]
$text insert $endLine.$endCur "\}"
$text insert $posBegin "\\$action\{"
set t [$text get $posBegin $curLine.end]
set curPos "$endLine\.end"
$text mark set insert $curPos
} else {
set posBegin "$curLine.$cursor"
set endLine [expr $curLine +0]
$text insert $posBegin "\\$action\{\}"
$text mark set insert "$endLine.end - 1 chars"
}
$text see insert
}
proc AddTextCommand {action} {
global dir font color nb
set node [$nb raise]
if {$node == "" || $node == "debug"} {return}
set text "$nb.f$node.f.text"
set pos [$text index insert]
set curLine [lindex [split $pos "."] 0]
set cursor [lindex [split $pos "."] 1]
set editLine [$text get $curLine.0 $pos]
set selIndex [$text tag ranges sel]
if {$selIndex != ""} {
set posBegin [lindex $selIndex 0]
set posEnd [lindex $selIndex 1]
set curLine [string range $posBegin 0 [expr [string first "\." $posBegin] - 1]]
set cursor [string range $posBegin [expr [string first "\." $posBegin] + 1] end]
set endLine [string range $posEnd 0 [expr [string first "\." $posEnd] - 1]]
set endCur [string range $posEnd [expr [string first "\." $posBegin] + 1] end]
set selText [$text get $posBegin $posEnd]
$text insert $posBegin "\\$action "
set t [$text get $posBegin $curLine.end]
set curPos "$endLine\.end"
$text mark set insert $curPos
} else {
set posBegin "$curLine.$cursor"
set endLine [expr $curLine +0]
$text insert $posBegin "\\$action "
$text mark set insert "$endLine.end"
}
$text see insert
}
proc AddTextDouble {beginText endText} {
global dir font color nb
set node [$nb raise]
if {$node == "" || $node == "debug"} {return}
set text "$nb.f$node.f.text"
set pos [$text index insert]
set curLine [lindex [split $pos "."] 0]
set cursor [lindex [split $pos "."] 1]
set editLine [$text get $curLine.0 $pos]
set selIndex [$text tag ranges sel]
if {$selIndex != ""} {
set posBegin [lindex $selIndex 0]
set posEnd [lindex $selIndex 1]
set curLine [string range $posBegin 0 [expr [string first "\." $posBegin] - 1]]
set cursor [string range $posBegin [expr [string first "\." $posBegin] + 1] end]
set endLine [string range $posEnd 0 [expr [string first "\." $posEnd] - 1]]
set endCur [string range $posEnd [expr [string first "\." $posBegin] + 1] end]
set selText [$text get $posBegin $posEnd]
if {[string range $endText 0 1] == "\n"} {
$text insert $endLine.$endCur " \\$endText"
} else {
$text insert $endLine.$endCur "\n\\[string trim $endText "\n"]"
}
$text insert $posBegin "\\$beginText "
} else {
set posBegin "$curLine.$cursor"
if {[string range $endText 0 1] == "\n"} {
$text insert $posBegin "\\$beginText \\$endText"
} else {
$text insert $posBegin "\\$beginText \n\\[string trim $endText "\n"]"
puts "$beginText $endText"
}
}
set ind [expr [string length $beginText] + 2]
set curPos "$posBegin + $ind chars"
$text mark set insert $curPos
$text see insert
}
proc AddTextMath {beginText endText} {
global dir font color nb
set node [$nb raise]
if {$node == "" || $node == "debug"} {return}
set text "$nb.f$node.f.text"
set pos [$text index insert]
set curLine [lindex [split $pos "."] 0]
set cursor [lindex [split $pos "."] 1]
set editLine [$text get $curLine.0 $pos]
set selIndex [$text tag ranges sel]
if {$selIndex != ""} {
set posBegin [lindex $selIndex 0]
set posEnd [lindex $selIndex 1]
set curLine [string range $posBegin 0 [expr [string first "\." $posBegin] - 1]]
set cursor [string range $posBegin [expr [string first "\." $posBegin] + 1] end]
set endLine [string range $posEnd 0 [expr [string first "\." $posEnd] - 1]]
set endCur [string range $posEnd [expr [string first "\." $posBegin] + 1] end]
set selText [$text get $posBegin $posEnd]
if {[string range $endText 0 1] == "\n"} {
$text insert $endLine.$endCur " $endText"
} else {
$text insert $endLine.$endCur "[string trim $endText "\n"]"
}
$text insert $posBegin "$beginText "
} else {
set posBegin "$curLine.$cursor"
if {[string range $endText 0 1] == "\n"} {
$text insert $posBegin "$beginText \\$endText"
} else {
$text insert $posBegin "$beginText [string trim $endText "\n"]"
}
}
set ind [expr [string length $beginText] + 2]
set curPos "$posBegin + $ind chars"
$text mark set insert $curPos
$text see insert
}

84
lib/modules/baloon.tcl Executable file
View File

@ -0,0 +1,84 @@
#######################################################################
# Baloon help
# Author: Alexander Dederer
# Usage:
# Set balloon tips to widget:
# balloon $widget set "Hello World"
# balloon [button .exit -text "exit" -command exit] set "Hello world"
#
# Clear ballon tips from widget:
# balloon $widget clear
#
# Show balloon tips on widget:
# balloon $widget show "Hello World"
#######################################################################
proc balloon { widget action args } {
global BALLOON font
switch -- $action {
set {
if { $args != {{}} } {
balloon $widget clear
#bind $widget <Any-Enter> "after 1000 [list balloon %W show $args mousepointer %X %Y]"
#bind $widget <Any-Leave> "catch { destroy %W.balloon }"
bind $widget <Enter> " balloon $widget show $args "
bind $widget <Leave> " wm withdraw .bubble "
}
}
show {
if ![winfo exists .bubble] {
toplevel .bubble -relief flat -background black -bd 1
wm withdraw .bubble
update
array set attrFont [font actual fixed]
set attrFont(-size) [expr $attrFont(-size) - 2]
eval pack [message .bubble.txt -aspect 5000 -bg lightyellow \
-font $font(normal) -text [lindex $args 0]]
pack .bubble.txt
wm transient .bubble .
wm overrideredirect .bubble 1
bind .bubble <Enter> "wm withdraw .bubble"
}
if {$args == ""} { wm withdraw .bubble }
set text [lindex $args 0]
set BALLOON $text
switch $text {
"" { wm withdraw .bubble ; update }
"default" {
after 1000 "raise_balloon $widget {$text}"
after 7000 "if { \$BALLOON == {$text} } { wm withdraw .bubble ; update }"
}
} ;# switch
}
clear {
catch { destroy .balloon }
bind $widget <Enter> {}
bind $widget <Leave> {}
}
} ;# switch action
} ;# proc balloon
proc raise_balloon {widget text} {
global BALLOON
if { $BALLOON != $text } { wm withdraw .bubble ; update ; return }
set cur_widget [winfo containing [winfo pointerx .] [winfo pointery .]]
if { $cur_widget != $widget } { return }
raise .bubble
.bubble.txt configure -text $text
set b_x [expr [winfo pointerx .] - [winfo reqwidth .bubble]/2]
set b_y [expr [winfo pointery .] + 15]
wm geometry .bubble +$b_x+$b_y
wm deiconify .bubble
update
} ;# proc raise_balloon

163
lib/modules/completition.tcl Executable file
View File

@ -0,0 +1,163 @@
###########################################################
# Tcl/Tk Project Manager #
# Distrubuted under GPL #
# Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru #
# Author: Sergey Kalinin (aka BanZaj) banzaj@lrn.ru #
###########################################################
# AutoCompletition Procedure #
# Author Alex DEDERER #
# Modify by Sergey (BanZaj) Kalinin 23.05.2002 #
###########################################################
proc auto_completition { widget } {
set start_word [$widget get "insert - 1 chars wordstart" insert]
set box [$widget bbox insert]
set box_x [expr [lindex $box 0] + [winfo rootx $widget] ]
set box_y [expr [lindex $box 1] + [winfo rooty $widget] + [lindex $box 3] ]
set cnt 0
set pos "1.0"
set last_pos ""
set pattern "$start_word\\w*"
set list_word($start_word) 1
while { ([set start [$widget search -count cnt -regexp -- $pattern $pos end]] != "") } {
set word [$widget get $start "$start + $cnt chars"]
if { ![string equal $start_word $word] } { set list_word($word) 1 }
set pos [$widget index "$pos + [expr $cnt + 1] chars"]
if { [string equal $last_pos $pos] } { break }
set last_pos $pos
} ;# while
bindtags $widget [list CompletitionBind [winfo toplevel $widget] $widget Text sysAfter all]
bind CompletitionBind <Escape> "bindtags $widget {[list [winfo toplevel $widget] $widget Text sysAfter all]}; catch { destroy .aCompletition }"
bind CompletitionBind <Key> { auto_completition_key %W %K %A ; break}
eval auto_completition_win $box_x $box_y [array names list_word]
} ;# proc auto_completition
## PROCEDURE LIST ##
## by BanZaj ##
proc AutoComplit {} {
global cmd activeFile nb
set node $activeFile
if {$node == ""} {return}
set widget "$nb.f$node.f.text"
set start_word [$widget get "insert - 1 chars wordstart" insert]
set box [$widget bbox insert]
set box_x [expr [lindex $box 0] + [winfo rootx $widget] ]
set box_y [expr [lindex $box 1] + [winfo rooty $widget] + [lindex $box 3] ]
set cnt 0
set pos "1.0"
set last_pos ""
set pattern "$start_word\\w*"
set i 0
for {set j 0} {$j <= [llength $cmd(all)]} {incr j} {
set line [lindex $cmd(all) $j]
if [regexp -nocase -all -- {(\\)([a-zA-Z]*)(\{\})} $line word] {
set word [string trim $word "\\"]
if {[string match "$start_word*" $word]} {
set list_word($word) $word
incr i
}
}
if {[string match "$start_word*" $line]} {
set list_word($line) $line
incr i
}
}
if {[array names list_word] == ""} {
return
}
bindtags $widget [list CompletitionBind [winfo toplevel $widget] $widget Text sysAfter all]
bind CompletitionBind <Escape> "bindtags $widget {[list [winfo toplevel $widget] $widget Text sysAfter all]}; catch { destroy .aCompletition }"
bind CompletitionBind <Key> {auto_completition_key %W %K %A ; break}
eval auto_completition_win $box_x $box_y [array names list_word]
} ;# proc auto_completition_proc
proc auto_completition_win { x y args} {
set win .aCompletition
if { [winfo exists $win] } { destroy $win }
toplevel $win
wm transient $win .
wm overrideredirect $win 1
listbox $win.lBox -width 30 -border 2 -yscrollcommand "$win.yscroll set" -border 1
scrollbar $win.yscroll -orient vertical -command "$win.lBox yview" -width 13 -border 1
pack $win.lBox -expand true -fill y -side left
pack $win.yscroll -side left -expand false -fill y
foreach { word } $args {
$win.lBox insert end $word
} ;# foreach | insert all word
catch { $win.lBox activate 0 ; $win.lBox selection set 0 0 }
if { [set height [llength $args]] > 10 } { set height 10 }
$win.lBox configure -height $height
bind $win <Escape> " destroy $win "
bind $win.lBox <Escape> " destroy $win "
wm geom $win +$x+$y
} ;# auto_completition_win
proc auto_completition_key { widget K A } {
set win .aCompletition
set ind [$win.lBox curselection]
switch -- $K {
Prior {
set up [expr [$win.lBox index active] - [$win.lBox cget -height]]
if { $up < 0 } { set up 0 }
$win.lBox activate $up
$win.lBox selection clear 0 end
$win.lBox selection set $up $up
}
Next {
set down [expr [$win.lBox index active] + [$win.lBox cget -height]]
if { $down >= [$win.lBox index end] } { set down end }
$win.lBox activate $down
$win.lBox selection clear 0 end
$win.lBox selection set $down $down
}
Up {
set up [expr [$win.lBox index active] - 1]
if { $up < 0 } { set up 0 }
$win.lBox activate $up
$win.lBox selection clear 0 end
$win.lBox selection set $up $up
}
Down {
set down [expr [$win.lBox index active] + 1]
if { $down >= [$win.lBox index end] } { set down end }
$win.lBox activate $down
$win.lBox selection clear 0 end
$win.lBox selection set $down $down
}
Return {
$widget delete "insert - 1 chars wordstart" "insert wordend - 1 chars"
$widget insert "insert" [$win.lBox get [$win.lBox curselection]]
#$widget mark set insert "insert wordend - 1 chars"
#$widget see insert
eval [bind CompletitionBind <Escape>]
}
default {
$widget insert "insert" $A
eval [bind CompletitionBind <Escape>]
}
}
} ;# proc auto_completition_key

252
lib/modules/convert.tcl Executable file
View File

@ -0,0 +1,252 @@
######################################################
# Tk LaTeX Editor
# Distributed under GNU Public License
# Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru
# Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru
######################################################
proc Latex2Html {} {
global tree module cmdString
set selFiles [$tree selection get]
if {[llength $selFiles] == 0} {
set answer [tk_messageBox\
-message "[::msgcat::mc "Don't selected file"]"\
-type ok -icon warning\
-title [::msgcat::mc "Warning"]]
case $answer {
ok {return 0}
}
}
if {[llength $selFiles] == 1} {
if {$selFiles != ""} {
set file [$tree itemcget $selFiles -data]
}
CommandStringDialog $file
}
#puts $command
}
proc ConvertDialog {action} {
global nb files font color cmdString module tcl_platform module convert_cmd activeFile act
set act $action
if [info exists activeFile] {
set nod $activeFile
} else {
return
}
if {[info exists files($nod)] == 0} {
return
}
set file [lindex $files($nod) 0]
set w .cmd
# destroy the find window if it already exists
if {[winfo exists $w]} {
destroy $w
}
toplevel $w
wm title $w [::msgcat::mc "Command options"]
wm resizable $w 0 0
wm transient $w .
frame $w.frmCombo -borderwidth 1 -background $color(bg)
frame $w.frmBtn -borderwidth 1 -background $color(bg)
pack $w.frmCombo $w.frmBtn -side top -fill x
# set combo [entry $w.frmCombo.entFind]
label $w.frmCombo.lblModule -text "[::msgcat::mc "Convert to"] \"$action\"" -background $color(bg)
label $w.frmCombo.lblFile -text "[::msgcat::mc "File"] \"$file\"" -background $color(bg)
set combo [entry $w.frmCombo.txtString]
pack $w.frmCombo.lblModule $w.frmCombo.lblFile $combo -fill x -padx 2 -pady 2 -side top
button $w.frmBtn.btnFind -text [::msgcat::mc "Run"]\
-font $font(normal) -width 12 -relief groove -background $color(bg)\
-command {
set convert_cmd($act) [.cmd.frmCombo.txtString get]
Convert $act
destroy .cmd
}
button $w.frmBtn.btnCancel -text [::msgcat::mc "Close"]\
-relief groove -width 12 -font $font(normal) -background $color(bg)\
-command "destroy $w"
pack $w.frmBtn.btnFind $w.frmBtn.btnCancel -fill x -padx 2 -pady 2 -side left
bind $w <Return> {
set convert_cmd($act) [.cmd.frmCombo.txtString get]
Convert $act
destroy .cmd
}
bind $w <Escape> "destroy $w"
$combo insert end "$convert_cmd($action)"
focus -force $combo
}
proc Convert {action} {
global dir nb files font activeFile tcl_platform module convert_cmd makeThread tree
set curDir [pwd]
#set node [$nb raise]
if [info exists activeFile] {
set nod $activeFile
while {[set parentNode [$tree parent $nod]] != "root"} {
set nod $parentNode
}
} else {
return
}
if {[info exists files($nod)] == 0} {
return
}
if {$module(convert_$action) == ""} {
set answer [tk_messageBox\
-message "[::msgcat::mc "Don't find programm"] $convert_cmd($action)"\
-type ok -icon warning\
-title [::msgcat::mc "Warning"]]
case $answer {
ok {return 0}
}
}
set text "$nb.f$nod.f.text"
set fullPath [lindex $files($nod) 0]
set folder [file dirname $fullPath]
set file [file tail $fullPath]
set ext [string trim [file extension $file] {.}]
set name [file rootname $file]
##
set node "debug"
if {[$nb index $node] != -1} {
$nb delete debug
}
set w [$nb insert end $node -text [::msgcat::mc "Running project"]]
# create array with file names #
set w [frame $w.f]
pack $w -side top -fill both -expand true
frame $w.frame -borderwidth 2 -relief ridge
pack $w.frame -side top -fill both -expand true
text $w.frame.text -yscrollcommand "$w.frame.yscroll set" \
-relief sunken -wrap word -highlightthickness 0 -font $font(normal)\
-selectborderwidth 0 -selectbackground #55c4d1 -width 10 -height 10
scrollbar $w.frame.yscroll -relief sunken -borderwidth {1} -width {10} -takefocus 0 \
-command "$w.frame.text yview"
pack $w.frame.text -side left -fill both -expand true
pack $w.frame.yscroll -side left -fill y
## READLINE WIDGET ##
frame $w.frmReadline -borderwidth 2 -relief ridge -height 5
pack $w.frmReadline -side top -fill x
text $w.frmReadline.text2 -yscrollcommand "$w.frmReadline.yscroll2 set" \
-relief sunken -wrap word -highlightthickness 0 -font $font(normal)\
-selectborderwidth 0 -selectbackground #55c4d1 -width 10 -height 5
scrollbar $w.frmReadline.yscroll2 -relief sunken -borderwidth {1} -width {10} -takefocus 0 \
-command "$w.frmReadline.text2 yview"
pack $w.frmReadline.text2 -side left -fill both -expand true
pack $w.frmReadline.yscroll2 -side left -fill y
bind $w.frmReadline.text2 <Return> ReadLine
balloon $w.frmReadline.text2 set [::msgcat::mc "Enter LaTeX command here and push Enter"]
pane::create $w.frame $w.frmReadline -orient horizontal -percent 0.9
# key bindings #
$nb raise $node
#insert debug data into text widget #
set pos [$w.frame.text index insert]
set lineNum [lindex [split $pos "."] 0]
$w.frame.text insert end "[::msgcat::mc "Work with file"] $fullPath\n"
if {[catch {cd $folder}] != 0} {return ""}
FileDialog save
set cmdString $convert_cmd($action)
if [regexp -nocase "%dirName" $convert_cmd($action) v] {
regsub -all -- {%dirName} $cmdString $folder cmdString
puts "$cmdString"
}
if [regexp -nocase "%fileName" $convert_cmd($action) v] {
regsub -all -- {%fileName} $cmdString $name cmdString
puts "$cmdString"
} else {
set cmdString "$convert_cmd($action) $fullPath"
}
puts "$cmdString"
$w.frame.text insert end "[::msgcat::mc "Make"] $action [::msgcat::mc "file"]\n"
$w.frame.text insert end "$cmdString\n\n"
set pipe [open "|$cmdString" "w+"]
set makeThread $pipe
$w.frame.text insert end "----------------- [::msgcat::mc "Programm output"] -----------------\n"
$w.frame.text tag add bold $lineNum.0 $lineNum.end
focus -force $w.frmReadline.text2
fileevent $pipe readable [list DebugInfo $w.frame.text $pipe $folder]
fconfigure $pipe -buffering none -blocking no
catch {cd $curDir}
}
proc ReadLine {} {
global makeThread
set pos [.frmBody.frmEditor.noteBook.fdebug.f.frmReadline.text2 index insert]
set lineNumber [lindex [split $pos "."] 0]
set cmd [.frmBody.frmEditor.noteBook.fdebug.f.frmReadline.text2 get $lineNumber.0 $lineNumber.end]
puts $cmd
fileevent $makeThread writable
if [info exists makeThread] {
puts $makeThread "$cmd"
}
}
proc ConvertImage {file} {
global dir convert_cmd render activeFile files nb thumb
set file [string trimleft [string trimright $file "\}"] "\{"]
set inFormat [GetExtention $file]
set name [file rootname [file tail $file]]
set imgFile "$name.$thumb(format)"
puts "$file\t$imgFile"
set _dir [file join [file dirname $file] .thumb]
if {[file exists $_dir] == 0} { file mkdir $_dir }
if [file exists [file join $_dir $imgFile]] {
puts "File exists [file join $_dir $imgFile]"
return "[file join $_dir $imgFile]"
} else {
puts "$convert_cmd(img) +adjoin +antialias -quality 10 -transparent $render(bg) -density $render(res) $file $_dir/$imgFile"
}
#set file [file tail $file]
if {$render(trans) == 1} {
if {$render(aa) == 1} {
catch [exec $convert_cmd(img) +adjoin -antialias -quality 10 -transparent $render(bg) -scale $thumb(resolution) $file [file join $_dir $imgFile]] err
} else {
catch [exec $convert_cmd(img) +adjoin +antialias -quality 10 -transparent $render(bg) -scale $thumb(resolution) $file [file join $_dir $imgFile]] err
}
} else {
if {$render(aa) == 1} {
catch [exec $convert_cmd(img) +adjoin -antialias -quality 10 -scale $thumb(resolution) $file [file join $_dir $imgFile]] err
} else {
catch [exec $convert_cmd(img) +adjoin +antialias -quality 10 -scale $thumb(resolution) $file [file join $_dir $imgFile]] err
}
}
if {$err != ""} {
set answer [tk_messageBox -message "$err"\
-type ok -icon warning -title [::msgcat::mc "Warning"]]
case $answer {
ok {return}
}
puts $err
}
return "[file join $_dir $imgFile]"
}

674
lib/modules/editor.tcl Executable file
View File

@ -0,0 +1,674 @@
#########################################################
# TkTeXeditor
# Distributed under GNU Public License
# Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru
# Copyright (c) "CONERO lrn", 2000, http//conero.lrn.ru
#########################################################
## FILE EDITOR WINDOW ##
proc EditFile {file} {
global dir font tree nb files color files index status activeFile treeStruct ver
global editor backup status replace sysenc release
wm title . "TkLaTeXEditor $ver$release - $file"
if {[file exists $file] == 0} {
set answer [tk_messageBox -message "$f [::msgcat::mc "File not found"]"\
-type ok -icon warning -title [::msgcat::mc "Warning"]]
case $answer {
ok {return}
}
}
set fileName [file tail $file]
set fileDir [file dirname $file]
set dir(current) $fileDir
puts "============ $fileName $fileDir"
set node [InsertTreeNode $fileName $fileDir]
#set node [NodeInsert $fileName $fileDir ""]
set activeFile $node
set replace 0 ;# for Overwrite procedure# execute external editor #
if {$editor(extern)=="Yes"} {
set pipe [open "|$editor(prog) $file" "r"]
fileevent $pipe readable
fconfigure $pipe -buffering none -blocking no
return
}
## check active file and if them don't exists return 0
if {[info exists files($node)] != 1} {
set files($node) [list $file 0]
set w [$nb insert end $node -text "$fileName"]
} else {
# puts "$file - already opened"
return
}
## update statusbar info
$status(fileAttr) configure -text "[FileAttr $file]"
$status(fileSize) configure -text "[file size $file] b."
$status(encode) configure -text "[lindex $files($node) 2]"
## create frames and text widget #
frame $w.f -borderwidth 2 -relief ridge
pack $w.f -side top -fill both -expand true
#supertext::text
supertext::text $w.f.text -yscrollcommand "$w.f.yscroll set" \
-relief sunken -wrap $editor(wrap) -highlightthickness 0 -font $font(editNormal)\
-background $color(editBg) -foreground $color(editFg)\
-selectborderwidth 0 -selectbackground $color(selectbg) -width 10
# lines numbering
#set txtLineNumber [text $w.f.text_lines -yscrollcommand "$w.f.yscroll set" \
#-relief sunken -wrap $editor(wrap) -highlightthickness 0 -font $font(editNormal)\
#-background $color(lineNumberBg) -foreground $color(lineNumberFg)\
#-selectborderwidth 0 -selectbackground $color(selectbg) -width 5]
scrollbar $w.f.yscroll -relief sunken -borderwidth {1} -width {10} -takefocus 0 \
-command "$w.f.text yview"
#pack $w.f.text_lines -side left -fill y
pack $w.f.text -side left -fill both -expand true
pack $w.f.yscroll -side left -fill y
$nb raise $node
## loadig tags for highlight procedure
LoadTag $w.f.text
#puts $w.f.text
## BACKUP FILE CREATED ##
if {$backup(create) == "Yes"} {
file copy -force -- $file [file join $dir(tmp) $fileName~]
}
## OPENED FILE ##
set fHandle [open "$file" r]
set sourceEnc [DocRecode $fHandle]
if {$sourceEnc == ""} {
set sourceEnc [encoding system]
}
lappend files($node) "$sourceEnc" ;# added encoding information
$status(encode) configure -text "[lindex $files($node) 2]"
set lineNumber 1
$treeStruct delete [$treeStruct nodes root] ;# delete all info about old structure
while {[gets $fHandle line]>=0} {
set line [encoding convertfrom $sourceEnc $line]
$w.f.text insert end "[string trimright $line]\n"
InsertStruct $node $line $lineNumber $fileDir
HighLightTEX $w.f.text $line $lineNumber $node
#$txtLineNumber insert end "$lineNumber\n"
incr lineNumber
}
close $fHandle
# key bindings #
set text $w.f.text
bind $text <Control-G> GoToLine
bind $text <Control-g> GoToLine
bind $text <Control-F> Find
bind $text <Control-f> Find
#bind $text <F2> SplitWindow
#bind $text <F6> {ConvertDialog ps}
#bind $text <F7> {ConvertDialog pdf}
bind $text <Control-R> ReplaceDialog
bind $text <Control-r> ReplaceDialog
#bind $text <F4> {ReplaceCommand $w.frame.text 1}
bind $text <Control-S> {FileDialog save}
bind $text <Control-s> {FileDialog save}
bind $text <Control-A> {FileDialog save_as}
bind $text <Control-a> {FileDialog save_as}
bind $text <Control-W> {FileDialog close}
bind $text <Control-w> {FileDialog close}
bind $text <Control-X> "tk_textCut $w.f.text;break"
bind $text <Control-x> "tk_textCut $w.f.text;break"
bind $text <Control-C> "tk_textCopy $w.f.text;break"
bind $text <Control-c> "tk_textCopy $w.f.text;break"
bind $text <Control-V> "tk_textPaste $w.f.text;break"
bind $text <Control-v> "tk_textPaste $w.f.text;break"
bind $text <Control-q> exit
bind $text <Control-Q> exit
bind $text <Control-z> "$text undo"
bind $text <Control-Z> "$text undo"
bind $text <Alt-c> AutoComplit
bind $text <Alt-C> AutoComplit
bind $text <Alt-f> "GenerateFormula math"
bind $text <Alt-F> "GenerateFormula math"
bind $text <Alt-t> "GenerateFormula text"
bind $text <Alt-T> "GenerateFormula text"
bind $text <ButtonRelease-1> {$status(pos) configure -text [%W index insert]}
bind $text <Insert> {OverWrite}
bind $text <Button-3> {catch [PopupMenu %W %X %Y]}
bind $text <KeyRelease-Return> {
AddText item
set pos [%W index insert]
set line [lindex [split $pos "."] 0]
set editLine [%W get $line.0 $pos]
HighLightTEX %W $editLine $line [$nb raise]
set node [$nb raise]
if {$node == "" || $node == "debug" || $node == "settings" || $node == "about"} {return 1}
if {[lindex $files($node) 1] == 0} {
set files($node) [list [lindex $files($node) 0] 1 [lindex $files($node) 2]]
$status(active) configure -text [::msgcat::mc "File modify"]
$nb itemconfigure $node -foreground $color(editTitleModify)
}
}
bind $text <KeyRelease> {
set node [$nb raise]
if {$node == "" || $node == "debug" || $node == "settings" || $node == "about"} {return 1}
set text "$nb.f$node.f.text"
set pos [$text index insert]
set line [lindex [split $pos "."] 0]
set symbol [lindex [split $pos "."] 1]
set editLine [$text get $line.0 $pos]
HighLightTEX $text $editLine $line $node
$status(pos) configure -text [$text index insert];# cursor position
if {$symbol >= $editor(strLen)} {
if {[Key %k] == "true"} {
if {$editor(strWrap) == "Yes"} {
#$text insert $line.end "\n"
set p [$text search -backward -regexp -- {\s} $pos $line.0]
if {$p !=""} {
$text insert "$p + 1 chars" "\n"
}
}
}
}
if {[Key %k] == "true"} {
if {[lindex $files($node) 1] == 0} {
set files($node) [list [lindex $files($node) 0] 1 [lindex $files($node) 2]]
$status(active) configure -text [::msgcat::mc "File modify"]
$nb itemconfigure $node -foreground $color(editTitleModify)
}
}
}
bind $text <KeyPress> {
if {[Key %k] == "true"} {
ReplaceChar %W
}
set node [$nb raise]
if {$node == "" || $node == "debug" || $node == "settings" || $node == "about"} {return 1}
set text "$nb.f$node.f.text"
set pos [$text index insert]
set line [lindex [split $pos "."] 0]
set symbol [lindex [split $pos "."] 1]
set editLine [$text get $line.0 $pos]
HighLightTEX $text $editLine $line $node
$status(pos) configure -text [$text index insert];# cursor position
if {$symbol >= $editor(strLen)} {
if {[Key %k] == "true"} {
if {$editor(strWrap) == "Yes"} {
#$text insert $line.end "\n"
set p [$text search -backward -regexp -- {\s} $pos $line.0]
if {$p !=""} {
$text insert "$p + 1 chars" "\n"
}
}
}
}
}
bind $text <KeyPress-space> {
if {[Key %k] == "true"} {
ReplaceChar %W
}
}
bind $text <KeyRelease-space> {
set node [$nb raise]
if {$node == "" || $node == "debug" || $node == "settings" || $node == "about"} {return 1}
if {[lindex $files($node) 1] == 0} {
set files($node) [list [lindex $files($node) 0] 1 [lindex $files($node) 2]]
$status(active) configure -text [::msgcat::mc "File modify"]
$nb itemconfigure $node -foreground $color(editTitleModify)
}
}
bind $text <Control-u> {
set i -1
switch -- [%W get "insert - 1 chars"] {
\{ {set i [_searchCloseBracket %W \{ \} insert end]}
\[ {set i [_searchCloseBracket %W \[ \] insert end]}
( {set i [_searchCloseBracket %W ( ) insert end]}
\} {set i [_searchOpenBracket %W \{ \} insert 1.0]}
\] {set i [_searchOpenBracket %W \[ \] insert 1.0]}
) {set i [_searchOpenBracket %W ( ) insert 1.0]}
} ;# switch
if { $i != -1 } {
%W mark set insert $i
%W see insert
}
} ;# bind
bindtags $text [list [winfo toplevel $text] $text Text sysAfter all]
bind sysAfter <Any-Key> {+ set i -1
catch {
switch -- [%W get "insert - 1 chars"] {
\{ {set i [_searchCloseBracket %W \{ \} insert end]}
\[ {set i [_searchCloseBracket %W \[ \] insert end]}
( {set i [_searchCloseBracket %W ( ) insert end]}
\} {set i [_searchOpenBracket %W \{ \} insert 1.0]}
\] {set i [_searchOpenBracket %W \[ \] insert 1.0]}
) {set i [_searchOpenBracket %W ( ) insert 1.0]}
} ;# switch
catch { %W tag remove lightBracket 1.0 end }
if { $i != -1 } {%W tag add lightBracket "$i - 1 chars" $i}
}
} ;# bind sysAfter
bind sysAfter <Button-1> [bind sysAfter <Any-Key>]
focus -force $w.f.text
Timer $file "refresh"
if {$backup(autosave) == "Yes"} {
Timer $file "autosave"
}
};# proc EditFile
proc _searchCloseBracket { widget o_bracket c_bracket start_pos end_pos } {
set o_count 1
set c_count 0
set found 0
set pattern "\[\\$o_bracket\\$c_bracket\]"
set pos [$widget search -regexp -- $pattern $start_pos $end_pos]
while { ! [string equal $pos {}] } {
set char [$widget get $pos]
#tk_messageBox -title $pattern -message "char: $char; $pos; o_count=$o_count; c_count=$c_count"
if {[string equal $char $o_bracket]} {incr o_count ; set found 1}
if {[string equal $char $c_bracket]} {incr c_count ; set found 1}
if {($found == 1) && ($o_count == $c_count) } { return [$widget index "$pos + 1 chars"] }
set found 0
set start_pos "$pos + 1 chars"
set pos [$widget search -regexp -- $pattern $start_pos $end_pos]
} ;# while search
return -1
} ;# proc _searchCloseBracket
# DEDERER
## Search open bracket in editor widget
proc _searchOpenBracket { widget o_bracket c_bracket start_pos end_pos } {
set o_count 0
set c_count 1
set found 0
set pattern "\[\\$o_bracket\\$c_bracket\]"
set pos [$widget search -backward -regexp -- $pattern "$start_pos - 1 chars" $end_pos]
while { ! [string equal $pos {}] } {
set char [$widget get $pos]
#tk_messageBox -title $pattern -message "char: $char; $pos; o_count=$o_count; c_count=$c_count"
if {[string equal $char $o_bracket]} {incr o_count ; set found 1}
if {[string equal $char $c_bracket]} {incr c_count ; set found 1}
if {($found == 1) && ($o_count == $c_count) } { return [$widget index "$pos + 1 chars"] }
set found 0
set start_pos "$pos - 0 chars"
set pos [$widget search -backward -regexp -- $pattern $start_pos $end_pos]
} ;# while search
return -1
} ;# proc _searchOpenBracket
proc GoToLine {} {
global nb files font color
set node [$nb raise]
if {$node == "newproj" || $node == "settings" || $node == "about" || $node == ""} {
return
}
set file $files($node)
set w $nb.f$node.goto
set text "$nb.f$node.f.text"
# destroy the find window if it already exists
if {[winfo exists $w]} {
destroy $w
}
# create the new "goto" window
toplevel $w
wm title $w [::msgcat::mc "Goto line"]
wm resizable $w 0 0
wm transient $w $nb.f$node
label $w.text -text [::msgcat::mc "Line number"] -font $font(normal) -background $color(bg)
entry $w.entGoTo -width 6 -validate key -validatecommand "ValidNumber %W %P"
pack $w.text $w.entGoTo -side left -anchor nw -padx 2 -pady 2
set line [$w.entGoTo get]
bind $w.entGoTo <Return> "+GoToLineNumber $text $nb.f$node"
bind $w.entGoTo <Escape> "destroy $w"
focus -force $w.entGoTo
}
## Check input number ##
proc ValidNumber {w value} {
if [string is integer $value] {
return 1
} else {
bell
return 0
}
}
## GOTO LINE ##
proc GoToLineNumber {text w} {
global status
set lineNumber [$w.goto.entGoTo get]
destroy $w.goto
catch {
$text mark set insert $lineNumber.0
$text see insert
}
$status(pos) configure -text [$text index insert];# cursor position
}
## SEARCH DIALOG FORM ##
set findHistory ""
set findString ""
set replaceString ""
proc Find {} {
global nb files font findHistory findString color
set node [$nb raise]
if {$node == "newproj" || $node == "settings" || $node == "about" || $node == ""} {
return
}
set file $files($node)
set w $nb.f$node.find
set text "$nb.f$node.f.text"
set findString ""
# destroy the find window if it already exists
if {[winfo exists $w]} {
destroy $w
}
toplevel $w
wm title $w [::msgcat::mc "Find"]
wm resizable $w 0 0
wm transient $w $nb.f$node
frame $w.frmCombo -borderwidth 1 -background $color(bg)
frame $w.frmBtn -borderwidth 1 -background $color(bg)
pack $w.frmCombo $w.frmBtn -side top -fill x
# set combo [entry $w.frmCombo.entFind]
set combo [ComboBox $w.frmCombo.txtLocale\
-textvariable findString -background $color(bg)\
-selectbackground "#55c4d1" -selectborderwidth 0\
-values $findHistory]
pack $combo -fill x -padx 2 -pady 2
button $w.frmBtn.btnFind -text "[::msgcat::mc "Find"] - F3"\
-font $font(normal) -width 12 -relief groove -background $color(bg)\
-command "FindCommand $text $w"
button $w.frmBtn.btnCancel -text "[::msgcat::mc "Close"] - Esc"\
-relief groove -width 12 -font $font(normal) -background $color(bg)\
-command "destroy $w"
pack $w.frmBtn.btnFind $w.frmBtn.btnCancel -fill x -padx 2 -pady 2 -side left
bind $w <Return> "FindCommand $text $w"
bind $w <F3> "FindCommand $text $w"
bind $w <Escape> "destroy $w"
focus -force $combo
# set findIndex [lsearch -exact $findHistory "$findString"]
$combo setvalue @0
}
proc FindCommand {text w} {
global findString findHistory
# set findString [$entry get]
destroy $w
# if null string? do nothing
if {$findString == ""} {
return
}
# search "again" (starting from current position)
FindNext $text 0
}
proc FindNext {text {incr 1}} {
global findString findHistory
set t $text
# append find string into find history list #
if {[lsearch -exact $findHistory $findString] == -1} {
set findHistory [linsert $findHistory 0 $findString]
}
set pos [$t index insert]
set line [lindex [split $pos "."] 0]
set x [lindex [split $pos "."] 1]
incr x $incr
set pos [$t search -nocase $findString $line.$x end]
# if found then move the insert cursor to that position, otherwise beep
if {$pos != ""} {
$t mark set insert $pos
$t see $pos
# highlight the found word
set line [lindex [split $pos "."] 0]
set x [lindex [split $pos "."] 1]
set x [expr {$x + [string length $findString]}]
$t tag remove sel 1.0 end
$t tag add sel $pos $line.$x
focus -force $t
return 1
} else {
bell
return 0
}
catch [$status(pos) configure -text [%W index insert]] ;# cursor position
}
## FIND FUNCTION PROCEDURE ##
proc FindProc {text findString node} {
global nb status
set pos "0.0"
$text see $pos
set line [lindex [split $pos "."] 0]
set x [lindex [split $pos "."] 1]
set pos [$text search -nocase $findString $line.$x end]
$text mark set insert $pos
$text see $pos
# highlight the found word
set line [lindex [split $pos "."] 0]
set x [lindex [split $pos "."] 1]
set x [expr {$x + [string length $findString]}]
$text tag remove sel 1.0 end
$text tag add sel $pos $line.$x
focus -force $text
catch [$status(pos) configure -text [$text index insert]] ;# cursor position
return 1
}
#3 REPLACE DIALOG FORM ##
proc ReplaceDialog {} {
global nb font files findString replaceString text color
set node [$nb raise]
if {$node == "newproj" || $node == "settings" || $node == "about" || $node == ""} {
return
}
#set file $files($node)
set w .replace
set text "$nb.f$node.f.text"
# set findString ""
# destroy the find window if it already exists
if {[winfo exists $w]} {
destroy $w
}
# create the new "find" window
toplevel $w
wm transient $w $nb.f$node
wm title $w [::msgcat::mc "Replace"]
wm resizable $w 0 0
set f1 [frame $w.frmFind -background $color(bg)]
set f2 [frame $w.frmReplace -background $color(bg)]
set f3 [frame $w.frmBtn -borderwidth 1 -background $color(bg)]
pack $f1 $f2 $f3 -side top -fill x -expand true
label $f1.lblFind -text [::msgcat::mc "Find"] -font $font(normal) -width 15 -anchor w -background $color(bg)
entry $f1.entFind -width 30
pack $f1.lblFind $f1.entFind -side left -padx 2 -pady 2
pack $f1.entFind -side left -fill x -expand true -padx 2 -pady 2
label $f2.lblReplace -text [::msgcat::mc "Replace with"] -font $font(normal) -width 15 -anchor w -background $color(bg)
entry $f2.entReplace -width 30
pack $f2.lblReplace $f2.entReplace -side left -padx 2 -pady 2
pack $f2.entReplace -side left -fill x -expand true -padx 2 -pady 2
button $f3.btnFind -text "[::msgcat::mc "Find"] - Enter" -width 12 -pady 0 -font $font(normal) -relief groove -background $color(bg)\
-command "ReplaceCommand $text $w $f1.entFind $f2.entReplace find"
button $f3.btnReplace -text "[::msgcat::mc "Replace"] - F4" -width 12 -pady 0\
-font $font(normal) -relief groove -background $color(bg)\
-command {
ReplaceCommand $text $w .replace.frmFind.entFind .replace.frmReplace.entReplace replace
focus -force .replace
}
button $f3.btnReplaceAll -text [::msgcat::mc "Replace all"] -width 12 -pady 0\
-font $font(normal) -relief groove -background $color(bg)\
-command "ReplaceCommand $text $w $f1.entFind $f2.entReplace replace_all"
button $f3.btnCancel -text "[::msgcat::mc "Cancel"] - Esc" -command "destroy $w"\
-width 12 -pady 0 -font $font(normal) -relief groove -background $color(bg)
pack $f3.btnFind $f3.btnReplace $f3.btnReplaceAll $f3.btnCancel\
-side left -padx 2 -pady 2 -fill x
bind $w <Return> "ReplaceCommand $text $w $f1.entFind $f2.entReplace find"
bind $w <F4> "ReplaceCommand $text $w $f1.entFind $f2.entReplace replace"
bind $w <Escape> "destroy $w"
focus -force $f1.entFind
if {$findString != ""} {
$f1.entFind insert end $findString
}
if {$replaceString != ""} {
$f2.entReplace insert end $replaceString
}
}
## REPLACE COMMAND ##
proc ReplaceCommand {text w entFind entReplace command} {
global nb font files findString replaceString
set node [$nb raise]
set findString [$entFind get]
set replaceString [$entReplace get]
switch -- $command {
"find" {
FindNext $text 1
focus -force .replace
}
"replace" {
if {[Replace $text 0]} {
FindNext $text 1
if {[lindex $files($node) 1] == 0} {
set files($node) [list [lindex $files($node) 0] 1 [lindex $files($node) 2]]
}
focus -force .replace
}
}
"replace_all" {
set stringsReplace 0
if {[Replace $text 0]} {
if {[lindex $files($node) 1] == 0} {
set files($node) [list [lindex $files($node) 0] 1 [lindex $files($node) 2]]
}
incr stringsReplace
while {[Replace $text 1]} {
incr stringsReplace
}
}
tk_messageBox -icon info -title [::msgcat::mc "Replace"]\
-parent $text -message\
"[::msgcat::mc "Was replacement"] $stringsReplace."
destroy $w
}
}
}
## REPLACE ONE WORD PROCEDURE ##
proc Replace {text incr} {
global nb font files findString replaceString
if {[FindNext $text $incr]} {
set selected [$text tag ranges sel]
set start [lindex $selected 0]
set end [lindex $selected 1]
$text delete $start $end
$text insert [$text index insert] $replaceString
return 1
} else {
return 0
}
# focus -force .replace
}
## OVERWRITE SYMBOL PROCEDURE ##
proc OverWrite {} {
global replace fontNormal status
if {$replace == 1} {
set replace 0
$status(ovwrt) configure -text [::msgcat::mc "Insert"] -foreground black
} else {
set replace 1
$status(ovwrt) configure -text [::msgcat::mc "Overwrite"] -foreground red
}
}
proc ReplaceChar {text} {
global replace
set pos [$text index insert]
set posY [lindex [split $pos "."] 0]
set posX [lindex [split $pos "."] 1]
if {$replace == 1} {
$text delete $posY.$posX $posY.[expr $posX + 1]
}
}
## GET KEYS CODE ##
proc Key {key} {
#puts $key ;#debug
if {$key >= 10 && $key <= 22} {return "true"}
if {$key >= 24 && $key <= 36} {return "true"}
if {$key >= 38 && $key <= 50} {return "true"}
if {$key >= 51 && $key <= 61 && $key != 58} {return "true"}
if {$key >= 79 && $key <= 91} {return "true"}
if {$key == 63 || $key == 107 || $key == 108 || $key == 112} {return "true"}
if {$key == 98 || $key == 100 || $key == 102 || $key == 104} {return "false"}
}
## SPLIT EDITOR WINDOW PROCEDURE ##
set split 0
proc SplitWindow {} {
global color font editor nb activeFile split
if [info exists activeFile] {
set w $nb.f$activeFile
} else {
return
}
if {$split == 0} {
frame $w.f1 -borderwidth 2 -relief ridge
pack $w.f1 -side top -fill both -expand true
#supertext::text
supertext::text $w.f1.text -yscrollcommand "$w.f1.yscroll set" \
-relief sunken -wrap $editor(wrap) -highlightthickness 0 -font $font(editNormal)\
-background $color(editBg) -foreground $color(editFg)\
-selectborderwidth 0 -selectbackground $color(selectbg) -width 10
scrollbar $w.f1.yscroll -relief sunken -borderwidth {1} -width {10} -takefocus 0 \
-command "$w.f1.text yview"
pack $w.f1.text -side left -fill both -expand true
pack $w.f1.yscroll -side left -fill y
##############################################
pane::create $w.f $w.f1 -orient horizontal -percent 0.5
set split 1
} elseif {$split == 1} {
destroy $w.f1
}
}

238
lib/modules/encode.tcl Executable file
View File

@ -0,0 +1,238 @@
###########################################################
# Tcl/Tk project Manager
# Distributed under GNU Public License
# Author: Sergey Kalinin banzaj@lrn.ru
# Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru
###########################################################
###########################################################
# ENCODING files procedure #
###########################################################
proc GetCorrectEncode {latexEncode} {
global files dir activeFile files
set f [open "[file join $dir(work) encode.lst]" r]
set encodeList [encoding names]
while {[gets $f line]} {
if {[string index [string trim $line] 0] == "#"} {
continue
}
scan $line "%s%s" texEnc tclEnc
#puts "$texEnc $tclEnc"
if {$texEnc == $latexEncode} {
close $f
return $tclEnc
} else {
set ind [lsearch -exact $encodeList $latexEncode]
#puts $latexEncode
if {$ind == -1} {
set answer [tk_messageBox\
-message "[lindex $files($activeFile) 0] [::msgcat::mc "Don't find any system encoding for"] $latexEncode \
[::msgcat::mc "You must write correctly encode name in"] [file join $dir(work) encode.lst] [::msgcat::mc "file"]"\
-type ok -icon warning\
-title [::msgcat::mc "Warning"]]
case $answer {
ok {return}
}
close $f
return $latexEncode
} else {
close $f
return $latexEncode
}
}
}
}
proc EncodeDialog {type} {
global color files activeFile
set w .encode
# destroy the find window if it already exists
if {[winfo exists .encode]} {
destroy .encode
}
toplevel .encode
wm title .encode [::msgcat::mc "Encoding"]
wm resizable .encode 0 0
wm transient .encode .
frame .encode.encodings -width 10
eval {
listbox .encode.encodings.list -height 10 -width 20 -selectbackground $color(selectbg)\
-selectborderwidth 0 -yscrollcommand {.encode.encodings.yscroll set}
}
eval {scrollbar .encode.encodings.yscroll -orient vertical -command {.encode.encodings.list yview}}
pack .encode.encodings.list -side left -expand true -fill y
pack .encode.encodings.yscroll -side left -expand false -fill y
pack .encode.encodings -side top -expand true -fill both
canvas .encode.line -border 0 -height 1 -background black -width 10
pack .encode.line -side top -expand true -fill x
frame .encode.command -width 10
if {$type == "file"} {
eval {
button .encode.command.ok -text [::msgcat::mc "Ok"] -command {
SetEncode [.encode.encodings.list get [.encode.encodings.list curselection]]
}
}
} else {
eval {
button .encode.command.ok -text [::msgcat::mc "Ok"] -command {
TextRecode [.encode.encodings.list get [.encode.encodings.list curselection]]
}
}
}
eval {button .encode.command.cancel -text [::msgcat::mc "Cancel"] -command {destroy .encode }}
grid .encode.command.ok -row 0 -column 0 -sticky e -pady 2 -padx 2
grid .encode.command.cancel -row 0 -column 1 -sticky w -pady 2 -padx 2
pack .encode.command -side top -expand true -fill x
bind .encode.encodings.list <Double-1> {eval [.encode.command.ok cget -command]}
bind .encode.encodings.list <Return> {eval [.encode.command.ok cget -command]}
bind .encode <Escape> {eval [.encode.command.cancel cget -command]}
set i 0 ; set cur_encoding [encoding system]
foreach { name_encodings } [lsort [encoding names] ] {
.encode.encodings.list insert end $name_encodings
if { $name_encodings == $cur_encoding } { set enc_pos $i }
incr i
} ;# foreach encoding names
wm resizable .encode 0 0
.encode.encodings.list activate $enc_pos
.encode.encodings.list selection set $enc_pos $enc_pos
.encode.encodings.list see $enc_pos
focus -force .encode.encodings.list
}
## Source encode ##
proc DocRecode {pipe} {
global files tree activeFile
set parentNode [$tree parent $activeFile]
if [info exists files($parentNode)] {
set sourceEnc [lindex $files($parentNode) 2]
} else {
set sourceEnc [encoding system] ;#[EncodeDialog]
}
puts $sourceEnc
while {[gets $pipe line]>=0} {
if [regexp -nocase -all -- {(\\)(usepackage)(\[)(.*?)(\])(\{)inputenc(\})} $line match v1 v2 v3 sourceEnc v5 v6 v7] {
if [set ind [string last "," $sourceEnc]] {
set sourceEnc [string range $sourceEnc [expr $ind + 1] end]
}
puts "ëÏÄÉÒÏ×ËÁ ÄÏËÕÍÅÎÔÁ $sourceEnc"
set sourceEnc [GetCorrectEncode $sourceEnc]
puts "ëÏÄÉÒÏ×ËÁ ÓÉÓÔÅÍÙ $sourceEnc"
}
}
fconfigure $pipe -encoding binary
seek $pipe 0 start
return $sourceEnc
}
## CHANGE SOURCE FIELE ENCODING ##
proc SetEncode {encode} {
global files activeFile status nb
destroy .encode
set files($activeFile) [list [lindex $files($activeFile) 0] [lindex $files($activeFile) 1] "$encode"]
#puts $files($activeFile)
$status(encode) configure -text "[lindex $files($activeFile) 2]"
}
## Reencoding text ##
proc TextRecode {encode} {
global files activeFile status nb
destroy .encode
set text $nb.f$activeFile.f.text
set contents [$text get 0.0 end]
#puts "[lindex $files($activeFile) 2] $encode"
set contents [encoding convertto [lindex $files($activeFile) 2] $contents]
set contents [encoding convertfrom $encode $contents]
$text delete 0.0 end
$text insert end $contents
unset text
SetEncode $encode
}
proc CheckEncoding {text} {
global files activeFile
set sourceEnc "" ;#[EncodeDialog]
set line [$text get 0.0 end]
if [regexp -nocase -all -- {(\\)(usepackage)(\[)(.*?)(\])(\{)inputenc(\})} $line match v1 v2 v3 sourceEnc v5 v6 v7] {
#break
if {$sourceEnc != "[lindex $files($activeFile) 2]"} {
set answer [tk_messageBox -message "[::msgcat::mc "Don't correctly setting document encoding! Save anyway?"]"\
-type yesno -icon warning\
-title [::msgcat::mc "Warning"]]
case $answer {
yes {return 1}
no {return 0}
}
}
puts "DocEnc-$sourceEnc ViewEnc-[lindex $files($activeFile) 2]"
}
}
## clipboard encode ##
set xselection ""
proc EncodeTextSelection {txt offset len} {
set ::xselection [eval $txt get [$txt tag ranges sel]]
encoding convertto \
[crange $::xselection $offset [expr $offset + $len - 1]]
}
proc EncodeEntrySelection {txt offset len} {
if [$txt selection present] {
set idx1 [$txt index sel.first]
set idx2 [$txt index sel.last]
set ::xselection [string range [$txt get] $idx1 $idx2]
encoding convertto \
[crange $::xselection $offset [expr $offset + $len - 1]]
} else {
set ::xselection ""
}
}
if {$tcl_platform(platform) == "win"} {
bind Text <Map> { selection handle %W "EncodeTextSelection %W"}
bind Entry <Map> { selection handle %W "EncodeEntrySelection %W"}
bind Text <Unmap> { selection handle %W {}}
bind Entry <Unmap> { selection handle %W {}}
bind Text <ButtonRelease-2> {
if [catch {set sel [selection get]}] continue
if {[selection own] == ""} {
set sel [encoding convertfrom $sel]
} else {
set sel $xselection
}
%W insert current $sel
}
bind Entry <ButtonRelease-2> {
if [catch {set sel [selection get]}] continue
if {[selection own] == ""} {
set sel [encoding convertfrom $sel]
} else {
set sel $xselection
}
%W insert insert $sel
}
}
#set class Text
#bind $class <Map> "selection handle %W \"unix::Encode${class}Selection %W\""
#bind $class <Unmap> { selection handle %W {}}
#proc EncodeTextSelection {txt offset len} {encoding convertto [eval $txt get [$txt tag ranges sel]]}

402
lib/modules/file.tcl Executable file
View File

@ -0,0 +1,402 @@
######################################################
# TkTeXeditor
# Distributed under GNU Public License
# Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru
# Copyright (c) "CONERO lrn", 2000, http//conero.lrn.ru
######################################################
set types {
{"TeX files" {.tex}}
{"Html files" {.html}}
{"Text files" {.txt}}
{"All files" *}
}
set typeImage {
{"GIF files" {.gif}}
{"PNG files" {.png}}
{"JPEG files" {.jpeg}}
{"All files" *}
}
proc FileDialog {operation} {
global dir font tree nb files treeStruct in lastNode \
activeFile color status lblList ver sysenc release types
## settings variable for tree section ##
set in(c) 0 ;# chapter counter
set in(p) 0 ;# part counter
set in(s) 0 ;# section counter
set in(ss) 0 ;# subsection counter
set in(sss) 0 ;# subsubsection counter
set in(par) 0 ;# paragraph cponter
set in(spar) 0 ;# subparagraph cponter
set lastNode "root"
if {$operation == "new"} {
NewFileDialog
} elseif {$operation == "new_templ"} {
TemplateDialog
} elseif {$operation == "open"} {
set file [tk_getOpenFile -initialdir $dir(current) -filetypes $types -parent .]
#puts "$file"
if {$file == ""} {return}
# call EditFile procedure
EditFile $file
} elseif {$operation == "save"} {
if [info exists activeFile] {
set node $activeFile
} else {
#set node [$nb raise]
return
}
if {$node == "newproj" || $node == "" || $node == "debug"} {
return
}
if {[info exists files($node)] == 0} {
return
}
set text "$nb.f$node.f.text"
set fullPath [lindex $files($node) 0]
set encode [lindex $files($node) 2] ;# document encoding
set folder [file dirname $fullPath]
set file [file tail $fullPath]
#set contents [encoding convertfrom $sysenc [$text get 0.0 end]]
#set contents [encoding convertto $encode [$text get 0.0 end]]
if {[CheckEncoding $text] == 0} {
return
}
set contents [$text get 0.0 end]
set fhandle [open [file join $folder $file] "w"]
fconfigure $fhandle -encoding $encode
puts $fhandle $contents nonewline
close $fhandle
#UpdateStruct $fullPath
if {[lindex $files($node) 1] == 1} {
set files($node) [list [lindex $files($node) 0] 0 [lindex $files($node) 2]]
$status(active) configure -text [::msgcat::mc "File saved"]
$nb itemconfigure $node -foreground $color(editTitleNormal)
}
UpdateStruct $fullPath $node
} elseif {$operation == "save_as"} {
if [info exists activeFile] {
set node $activeFile
#set node [$nb raise]
} else {
return
}
if {$node == "newproj" || $node == "settings" || $node == "about" || $node == ""} {
return
}
if {[info exists files($node)] == 0} {
return
}
set fullPath [lindex $files($node) 0]
set folder [file dirname $fullPath]
set file [file tail $fullPath]
set encode [lindex $files($node) 2] ;# document encoding
set file [tk_getSaveFile -initialdir $dir(current) -filetypes $types -parent .\
-initialfile $file -defaultextension .tex]
if {$file == ""} {return}
set text "$nb.f$node.f.text"
set contents [$text get 0.0 end]
set fhandle [open [file join $folder $file] "w"]
fconfigure $fhandle -encoding $encode
puts $fhandle $contents nonewline
close $fhandle
if {[lindex $files($node) 1] == 1} {
set files($node) [list [lindex $files($node) 0] 0 $encode]
$status(active) configure -text [::msgcat::mc "File saved"]
$nb itemconfigure $node -foreground $color(editTitleNormal)
}
UpdateStruct $fullPath $node
} elseif {$operation == "save_all"} {
# SAVE ALL PROCEDURE
set i 0
set nodeList [$nb pages 0 end]
set length [llength $nodeList]
while {$i < $length} {
set nbNode [lindex $nodeList $i]
if {$nbNode != "debug"} {
set text "$nb.f$nbNode.f.text"
set savedFile [lindex $files($nbNode) 0]
set encode [lindex $files($nbNode) 2] ;# document encoding
set contents [$text get 0.0 end]
set fhandle [open $savedFile "w"]
fconfigure $fhandle -encoding $encode
puts $fhandle $contents nonewline
close $fhandle
if {[lindex $files($nbNode) 1] == 1} {
set files($nbNode) [list [lindex $files($nbNode) 0] 0 $encode]
$status(active) configure -text [::msgcat::mc "File saved"]
$nb itemconfigure $nbNode -foreground $color(editTitleNormal)
}
}
incr i
}
Timer "empty" "autosave"
} elseif {$operation == "close"} {
set node [$nb raise]
if {$node == ""} {return}
if {$node == "debug"} {
$nb delete $node
$nb raise [$nb page 0]
return
}
set childrenNode [$tree nodes $node]
# ÐÒÏ×ÅÒÑÅÍ ÅÓÔØ ÌÉ ÏÔËÒÙÔÅ ÄÏÞÅÒÎÉÅ ÆÁÊÌÙ É ÚÁËÒÙ×ÁÅÍ ÉÚÈ ÅÓÌÉ ÅÓÔØ
if {$childrenNode != ""} {
for {set i 0} {$i <= [llength $childrenNode]} {incr i} {
if {[info exists files([lindex $childrenNode $i])] == 1} {
CloseNode [lindex $childrenNode $i]
}
}
}
CloseNode $node
} elseif {$operation == "close_all"} {
set nodeList [$nb pages 0 end]
$nb raise [$nb page 0]
set nbNode [$nb raise]
while {$nbNode != ""} {
if {[info exists files($nbNode)] == 1} {
if {[lindex $files($nbNode) 1] == 1} {
set f [lindex $files($nbNode) 0]
set f [file tail $f]
set answer [tk_messageBox\
-message "$f [::msgcat::mc "File was modifyed. Save?"]"\
-type yesnocancel -icon warning\
-title [::msgcat::mc "Warning"]]
case $answer {
yes {FileDialog save}
no {}
cancel {return}
}
}
}
$tree delete $nbNode
$nb delete $nbNode
$nb raise [$nb page 0]
set nbNode [$nb raise]
}
} elseif {$operation == "quit_close_all"} {
set nodeList [$nb pages 0 end]
$nb raise [$nb page 0]
set nbNode [$nb raise]
set fhandle [open [file join $dir(work) bookmarks] "w"]
while {$nbNode != ""} {
if {[info exists files($nbNode)] == 1} {
set f [lindex $files($nbNode) 0]
puts $f
# ÚÁÐÏÍÎÉÎÁÎÉÅ ÏÔËÒÙÔÙÈ ÆÁÊÌÏ× É ÐÏÚÉÃÉÊ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ
set text "$nb.f$nbNode.f.text"
puts $fhandle "$f [$text index insert]"
puts "$f [$text index insert]"
if {[lindex $files($nbNode) 1] == 1} {
set f [file tail $f]
set answer [tk_messageBox\
-message "$f [::msgcat::mc "File was modifyed. Save?"]"\
-type yesnocancel -icon warning\
-title [::msgcat::mc "Warning"]]
case $answer {
yes {FileDialog save}
no {}
cancel {return 0}
}
}
}
$tree delete $nbNode
$nb delete $nbNode
$nb raise [$nb page 0]
set nbNode [$nb raise]
}
close $fhandle
}
}
proc NewFile {fileName} {
global dir workDir tree nb font
destroy .addtoproj
set type [string trim [file extension $fileName] {.}]
if {$type == "tcl"} {
set img "tcl"
} elseif {$type == "tk"} {
set img "tk"
} elseif {$type == "txt"} {
set img "file"
} elseif {$type == "html"} {
set img "html"
} else {
set img "file"
}
#set subNode [InsertTreeNode $fileName $dir(doc)]
if [info exists dir(current)] {
set file [file join $dir(current) $fileName]
} else {
set file [file join $dir(doc) $fileName]
}
#puts $file
#InsertTitle $file $type
if {[file exists $file] == 0} {
set fHandle [open "$file" a+]
close $fHandle
}
EditFile $file
}
## ADD FILE INTO PROJECT DIALOG##
proc NewFileDialog {} {
global dir
set w .addtoproj
if {[winfo exists $w]} {
destroy $w
}
# create the new "goto" window
toplevel $w
wm title $w [::msgcat::mc "Create new file"]
wm resizable $w 0 0
wm transient $w .
frame $w.frmCanv -border 1 -relief sunken
frame $w.frmBtn -border 1 -relief sunken
pack $w.frmCanv -side top -fill both -padx 1 -pady 1
pack $w.frmBtn -side top -fill x
label $w.frmCanv.lblImgTcl -text [::msgcat::mc "Input file name"]
entry $w.frmCanv.entImgTcl
pack $w.frmCanv.lblImgTcl $w.frmCanv.entImgTcl -expand true -padx 5 -pady 5 -side top
button $w.frmBtn.btnOk -text [::msgcat::mc "Create"] -relief groove -command {
NewFile [.addtoproj.frmCanv.entImgTcl get]
}
button $w.frmBtn.btnCancel -text [::msgcat::mc "Close"] -command "destroy $w" -relief groove
pack $w.frmBtn.btnOk $w.frmBtn.btnCancel -padx 2 -pady 2 -fill x -side left
bind $w <Escape> "destroy .addtoproj"
bind $w.frmCanv.entImgTcl <Return> {
NewFile [.addtoproj.frmCanv.entImgTcl get]
}
focus -force $w.frmCanv.entImgTcl
$w.frmCanv.entImgTcl insert 0 "name.tex"
}
proc FileAttr {file} {
global tcl_platform
set fileAttribute ""
# get file modify time
if {$tcl_platform(platform) == "windows"} {
} elseif {$tcl_platform(platform) == "mac"} {
} elseif {$tcl_platform(platform) == "unix"} {
set unixTime [file mtime $file]
set modifyTime [clock format $unixTime -format "%d/%m/%Y, %H:%M"]
append fileAttribute $modifyTime
}
# get file size
set size [file size $file]
if {$size < 1024} {
set fileSize "$size b"
}
if {$size >= 1024} {
set s [expr ($size.0) / 1024]
set dot [string first "\." $s]
set int [string range $s 0 [expr $dot - 1]]
set dec [string range $s [expr $dot + 1] [expr $dot + 2]]
set fileSize "$int.$dec Kb"
}
if {$size >= 1048576} {
set s [expr ($size.0) / 1048576]
set dot [string first "\." $s]
set int [string range $s 0 [expr $dot - 1]]
set dec [string range $s [expr $dot + 1] [expr $dot + 2]]
set fileSize "$int.$dec Mb"
}
append fileAttribute ", $fileSize"
}
## REMOVED SELECTED TEXT INTO FILE AND INCLUDE THEM ##
proc SaveToFile {action} {
global nb activeFile files dir types typeImage
set text $nb.f$activeFile.f.text
set selIndex [$text tag ranges sel]
if {$selIndex != ""} {
set posBegin [lindex $selIndex 0]
set posEnd [lindex $selIndex 1]
set contents [$text get $posBegin $posEnd]
} else {
return
}
set enc "[lindex $files($activeFile) 2]"
set contents [encoding convertto $enc $contents]
set contents [encoding convertfrom $enc $contents]
if {$action == "image"} {
set file [tk_getSaveFile -initialdir $dir(current) -filetypes $typeImage -parent .\
-title [::msgcat::mc "Save as"] -initialfile new_name.gif -defaultextension .gif]
if {$file == ""} {return}
Render $contents text $file
} else {
set file [tk_getSaveFile -initialdir $dir(current) -filetypes $types -parent .\
-title [::msgcat::mc "Save as"] -initialfile new_name.tex -defaultextension .tex]
if {$file == ""} {return}
set fHandle [open $file w]
puts $fHandle $contents
close $fHandle
}
if {$action == "remove"} {
$text delete $posBegin $posEnd
$text insert $posBegin "\n\\input\{[file rootname $file]\}\n"
}
PageRaise $activeFile
}
proc CloseNode {node} {
global dir font tree nb files treeStruct in lastNode activeFile color status lblList ver sysenc release types
if {$node == "debug"} {$nb delete $node; $nb raise [$nb page 0]; set node [$nb raise]; return}
if {[info exists files($node)] == 1} {
if {[lindex $files($node) 1] == 1} {
set f [lindex $files($node) 0]
set f [file tail $f]
set answer [tk_messageBox\
-message "$f [::msgcat::mc "File was modifyed. Save?"]"\
-type yesnocancel -icon warning\
-title [::msgcat::mc "Warning"]]
case $answer {
yes {FileDialog save}
no {}
cancel {return}
}
}
}
PageTab -1
$nb delete $node
unset files($node)
set parentNode [$tree parent $node]
set curNode [$tree selection get]
if {[$tree parent $node] == "root"} {
if {[$tree exists $node] == 1} {
$tree delete $node
}
}
#$nb raise [$nb page 0]
#set node [$nb raise]
ClickTab $node
$treeStruct delete [$treeStruct nodes root]
$lblList delete [$lblList item 0 end]
wm title . "TkLaTeXEditor $ver\($release\)"
}

575
lib/modules/gui.tcl Executable file
View File

@ -0,0 +1,575 @@
######################################################
# TkTeXeditor
# Distributed under GNU Public License
# Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru
# Copyright (c) "CONERO lrn", 2000, http//conero.lrn.ru
######################################################
######################################################
# #
# Programms main interface window #
# #
######################################################
## MAIN INTERFACE WINDOW ##
wm geometry . $gui(geometry)
set activeFile ""
wm title . "TkLaTeXEditor $ver$release"
wm iconname . "TkTeXEditor $ver$release"
wm protocol . WM_DELETE_WINDOW Quit
wm overrideredirect . 0
wm positionfrom . user
#wm resizable . 0 0
## main frames
frame .frmMenu -border 1 -relief raised -background $color(bg)
frame .frmTool -border 1 -relief raised -background $color(bg)
frame .frmToolEdit -border 1 -relief raised -background $color(bg)
frame .frmBody -border 1 -relief raised -background $color(bg)
frame .frmStatus -border 1 -relief sunken -background $color(bg)
pack .frmMenu -side top -padx 1 -fill x
pack .frmTool -side top -padx 1 -fill x
pack .frmToolEdit -side top -padx 1 -fill x
pack .frmBody -side top -padx 1 -fill both -expand true
pack .frmStatus -side top -padx 1 -fill x
## MENU ##
menubutton .frmMenu.mnuFile -text [::msgcat::mc "File"] -menu .frmMenu.mnuFile.m -font $font(normal) -background $color(bg)
set m [menu .frmMenu.mnuFile.m -background $color(bg)]
$m add cascade -label [::msgcat::mc "New"] -menu $m.new -font $font(normal)
set mn [menu $m.new -background $color(bg)]
$mn add command -label [::msgcat::mc "New file"] -command {FileDialog new}\
-font $font(normal) -accelerator "Ctrl+N"
$mn add command -label [::msgcat::mc "Create from template"] -command {FileDialog new_templ}\
-font $font(normal)
$mn add command -label [::msgcat::mc "New project"] -command {NewProj add ""}\
-font $font(normal) -state disable
$m add command -label [::msgcat::mc "Open"] -command {FileDialog open}\
-font $font(normal) -accelerator "Ctrl+O"
$m add command -label [::msgcat::mc "Save"] -command {FileDialog save}\
-font $font(normal) -accelerator "Ctrl+S"
$m add command -label [::msgcat::mc "Save as"] -command {FileDialog save_as}\
-font $font(normal) -accelerator "Ctrl+A"
$m add command -label [::msgcat::mc "Save all"] -command {FileDialog save_all}\
-font $font(normal)
$m add command -label [::msgcat::mc "Close"] -command {FileDialog close}\
-font $font(normal) -accelerator "Ctrl+W"
$m add command -label [::msgcat::mc "Close all"] -command {FileDialog close_all}\
-font $font(normal)
$m add command -label [::msgcat::mc "Delete"] -command {FileDialog delete}\
-font $font(normal) -accelerator "Ctrl+D"
$m add separator
$m add command -label [::msgcat::mc "Print"] -command {PrintDialog print}\
-font $font(normal) -accelerator "Ctrl+P" -state normal
#$m add separator
#$m add command -label [::msgcat::mc "Settings"] -command Settings -font $font(normal)
$m add separator
$m add command -label [::msgcat::mc "Exit"] -command Quit -font $font(normal) -accelerator "Ctrl+Q"
### DOCUMENT MENU ####
menubutton .frmMenu.mnuDoc -text [::msgcat::mc "Document"] -menu .frmMenu.mnuDoc.m -font $font(normal) -background $color(bg)
set m [menu .frmMenu.mnuDoc.m -background $color(bg)]
#$m add command -label [::msgcat::mc "Included packages"] -command {PackageDialog}\
#-font $font(normal) -state disable
# "convert to" submenu ##
$m add cascade -label "[::msgcat::mc "Convert to"] ..." -menu $m.convert -font $font(normal) -state normal
set mn [menu $m.convert -background $color(bg)]
$mn add command -label [::msgcat::mc "DVI"] -font $font(normal) -accelerator "F5" -state normal\
-command {ConvertDialog dvi}
$mn add command -label [::msgcat::mc "PS"] -font $font(normal) -accelerator "F6" -state normal\
-command {ConvertDialog ps}
$mn add command -label [::msgcat::mc "PDF"] -font $font(normal) -accelerator "F7" -state normal\
-command {ConvertDialog pdf}
$mn add command -label "HTML" -font $font(normal) -command {ConvertDialog html}\
$mn add separator
## "preview" submenu ##
$m add cascade -label [::msgcat::mc "Preview"] -menu $m.preview -font $font(normal) -state normal
set mn [menu $m.preview -background $color(bg)]
$mn add command -label "DVI" -command {Preview dvi} -font $font(normal)
$mn add command -label "PS" -command {Preview ps} -font $font(normal)
$mn add command -label "PDF" -command {Preview pdf} -font $font(normal)
$mn add command -label "HTML" -command {Preview html} -font $font(normal)
$m add separator
$m add command -label [::msgcat::mc "Spell check"] -font $font(normal) -state normal\
-command {
SpellCheck $nb.f[$nb raise].f.text
}
$m add command -label [::msgcat::mc "Encoding"] -font $font(normal) -state normal\
-command {EncodeDialog file}
$m add command -label [::msgcat::mc "Syntax check"] -command {DoModule syntax}\
-font $font(normal) -state disable
##.frmMenu 'EDIT' ##
menubutton .frmMenu.mnuEdit -text [::msgcat::mc "Edit"] -menu .frmMenu.mnuEdit.m -font $font(normal) -background $color(bg)
set m [menu .frmMenu.mnuEdit.m -background $color(bg)]
$m add command -label [::msgcat::mc "Undo"] -font $font(normal) -accelerator "Ctrl+Z"\
-state normal -command "CutPast undo"
$m add separator
$m add command -label [::msgcat::mc "Copy"] -font $font(normal) -accelerator "Ctrl+C"\
-command "CutPast copy"
$m add command -label [::msgcat::mc "Paste"] -font $font(normal) -accelerator "Ctrl+V"\
-command "CutPast paste"
$m add command -label [::msgcat::mc "Cut"] -font $font(normal) -accelerator "Ctrl+X"\
-command "CutPast cut"
$m add separator
$m add command -label [::msgcat::mc "Select All"] -command {Select all} -font $font(normal) -accelerator "Ctrl+/"
$m add command -label [::msgcat::mc "Remove selection"] -command {Select remove} -font $font(normal)\
-accelerator "Ctrl+\\"
$m add separator
$m add command -label [::msgcat::mc "Goto line"] -command GoToLine -font $font(normal)\
-accelerator "Ctrl+G"
$m add command -label [::msgcat::mc "Find"] -command Find -font $font(normal) -accelerator "Ctrl+F"
$m add command -label [::msgcat::mc "Replace"] -command ReplaceDialog -font $font(normal)\
-accelerator "Ctrl+R"
$m add separator
$m add cascade -label "[::msgcat::mc "Custom operations"] ..." -menu $m.hotkeys -font $font(normal) -state normal
menu $m.hotkeys -background $color(bg)
## MENU for selected text ##
set m [menu .frmMenu.mnuEdit.m.selection -background $color(bg)]
$m add command -label [::msgcat::mc "Select All"] -command {Select all} -font $font(normal) -accelerator "Ctrl+/"
$m add command -label [::msgcat::mc "Remove selection"] -command {Select remove} -font $font(normal)\
-accelerator "Ctrl+\\"
$m add separator
$m add command -label [::msgcat::mc "Copy"] -font $font(normal) -accelerator "Ctrl+C"\
-command "CutPast copy"
$m add command -label [::msgcat::mc "Paste"] -font $font(normal) -accelerator "Ctrl+V"\
-command "CutPast paste"
$m add command -label [::msgcat::mc "Cut"] -font $font(normal) -accelerator "Ctrl+X"\
-command "CutPast cut"
$m add separator
$m add command -label [::msgcat::mc "Preview formula"] -command {GenerateFormula math} -font $font(normal)\
-accelerator "Alt+F"
$m add command -label [::msgcat::mc "Preview text"] -command {GenerateFormula text} -font $font(normal)\
-accelerator "Alt+T"
$m add separator
$m add command -label [::msgcat::mc "Remove to file"] -command {SaveToFile remove} -font $font(normal)
$m add command -label [::msgcat::mc "Save as file"] -command {SaveToFile file} -font $font(normal)
$m add command -label [::msgcat::mc "Save as image"] -command {SaveToFile image} -font $font(normal)
## VIEW MENU ##
menubutton .frmMenu.mnuView -text [::msgcat::mc "View"] -menu .frmMenu.mnuView.m -font $font(normal) -state normal -background $color(bg)
set m [menu .frmMenu.mnuView.m -background $color(bg)]
$m add cascade -label [::msgcat::mc "Toolbar"] -menu $m.tool -font $font(normal)
set mn [menu $m.tool]
#$mn add command -label [::msgcat::mc "Create from template"] -command {FileDialog new_templ}\
#-font $font(normal)
$m add separator
$m add command -label [::msgcat::mc "Split window"] -font $font(normal) -accelerator "F2" -state disable\
-command {SplitWindow}
$m add command -label [::msgcat::mc "Encoding"] -font $font(normal) -state normal\
-command {EncodeDialog view}
## MODULES MENU ##
menubutton .frmMenu.mnuModule -text [::msgcat::mc "Modules"] -menu .frmMenu.mnuModule.m \
-underline 0 -font $font(normal) -background $color(bg)
## HELP MENU ##
menubutton .frmMenu.mnuHelp -text [::msgcat::mc "Help"] -menu .frmMenu.mnuHelp.m \
-underline 0 -font $font(normal) -background $color(bg)
set m [menu .frmMenu.mnuHelp.m -background $color(bg)]
$m add command -label [::msgcat::mc "Help"] -command ShowHelp \
-accelerator F1 -font $font(normal)
$m add command -label [::msgcat::mc "About ..."] -command AboutDialog \
-font $font(normal)
pack .frmMenu.mnuFile .frmMenu.mnuEdit .frmMenu.mnuDoc .frmMenu.mnuView .frmMenu.mnuModule -side left
pack .frmMenu.mnuHelp -side right
###############################################
frame .frmBody.frmList -background $color(bg)
frame .frmBody.frmEditor -background $color(bg)
pack .frmBody.frmList .frmBody.frmEditor -side left -fill both
## SPLIT BAR ##
pane::create .frmBody.frmList .frmBody.frmEditor
## TREE FRAME ##
set nbTree [NoteBook .frmBody.frmList.nBook -font $font(normal) -side $gui(tabsLabel) -background $color(bg)]
pack $nbTree -fill both -expand true -padx 2 -pady 2
set f [$nbTree insert end fileTree -text [::msgcat::mc "Files"] -background $color(bg)]
set fTree [ScrolledWindow $f.f -background $color(bg)]
pack $fTree -side top -fill both -expand yes -padx 0 -pady 0
set tree [Tree $fTree.tree \
-relief sunken -borderwidth 1 -width 1 -height 1 -highlightthickness 1\
-redraw 0 -dropenabled 1 -dragenabled 1 -dragevent 3 \
-background $color(editBg) -selectbackground $color(selectbg) \
-droptypes {TREE_NODE {copy {} move {} link {}}
LISTBOX_ITEM {copy {} move {} link {}}} -opencmd {} -closecmd {}]
$fTree setwidget $tree
#pack $tree -side left -fill both -expand yes
###############################################
set fStruct [$nbTree insert end fileStruct -text [::msgcat::mc "Document"] -background $color(bg)]
set fTreeStruct [ScrolledWindow $fStruct.fs -background $color(bg)]
pack $fTreeStruct -side top -fill both -expand yes
set treeStruct [Tree $fTreeStruct.treeStruct \
-relief sunken -borderwidth 1 -width 1 -height 1 -highlightthickness 1\
-redraw 0 -dropenabled 0 -dragenabled 0 -dragevent 3 \
-background $color(editBg) -selectbackground $color(selectbg) \
-showlines 1 -droptypes {
TREE_NODE {copy {} move {} link {}}
LISTBOX_ITEM {copy {} move {} link {}}
}]
$fTreeStruct setwidget $treeStruct
#pack $treeStruct -side left -fill both -expand yes
###############################################
set f [$nbTree insert end lblList -text [::msgcat::mc "Labels"] -background $color(bg)]
set fList [ScrolledWindow $f.f -background $color(bg)]
set lblList [ListBox $fList.list -font $font(normal) -relief sunken -borderwidth 1 -width 1 -height 1 -highlightthickness 1 -background $color(editBg) -selectbackground $color(selectbg)]
#pack $lblList -side left -fill both -expand yes
$fList setwidget $lblList
pack $fList -side top -fill both -expand yes
###############################################
set nb [NoteBook .frmBody.frmEditor.noteBook -font $font(normal) -side $gui(tabsLabel) -background $color(bg)]
pack $nb -fill both -expand true -padx 2 -pady 2
###############################################
set m .popupTabs
menu $m -font $font(normal)
$m add command -label [::msgcat::mc "Close"] -command {FileDialog close}\
-font $font(normal) -accelerator "Ctrl+W"
$m add command -label [::msgcat::mc "Close all"] -command {FileDialog close_all}\
-font $font(normal)
## KEYS BINDINGS ##
$tree bindText <Button-1> "TreeOneClick [$tree selection get]"
$tree bindImage <Button-1> "TreeOneClick [$tree selection get]"
$tree bindText <Shift-Button-1> {$tree selection add [$tree selection get]}
$tree bindImage <Shift-Button-1> {$tree selection add [$tree selection get]}
$treeStruct bindText <Button-1> "TreeStructOneClick [$treeStruct selection get]"
$treeStruct bindImage <Button-1> "TreeStructOneClick [$treeStruct selection get]"
$nb bindtabs <ButtonRelease> "ClickTab"
$nb bindtabs <Button-3> {catch [PopupMenuTab .popupTabs %X %Y]}
## MOUSE WHEEL BINDING ##
bind $fTree.tree.c <Button-4> "$tree yview scroll -3 units"
bind $fTree.tree.c <Button-5> "$tree yview scroll 3 units"
bind $fTree.tree.c <Shift-Button-4> "$tree xview scroll -2 units"
bind $fTree.tree.c <Shift-Button-5> "$tree xview scroll 2 units"
bind $fTree.tree.c <Button-3> {catch [tk_popup .frmMenu.mnuFile.m %X %Y]}
bind $fTreeStruct.treeStruct.c <Button-4> "$treeStruct yview scroll -3 units"
bind $fTreeStruct.treeStruct.c <Button-5> "$treeStruct yview scroll 3 units"
bind $fTreeStruct.treeStruct.c <Shift-Button-4> "$treeStruct xview scroll -2 units"
bind $fTreeStruct.treeStruct.c <Shift-Button-5> "$treeStruct xview scroll 2 units"
$lblList bindImage <ButtonRelease-1> "FindLabel [$lblList selection get]"
$lblList bindText <ButtonRelease-1> "FindLabel [$lblList selection get]"
bind $lblList.c <Button-4> "$lblList yview scroll -3 units"
bind $lblList.c <Button-5> "$lblList yview scroll 3 units"
bind $lblList.c <Shift-Button-4> "$lblList xview scroll -2 units"
bind $lblList.c <Shift-Button-5> "$lblList xview scroll 2 units"
bind . <Control-q> Quit
bind . <Control-Q> Quit
bind . <F1> ShowHelp
bind . <F5> {ConvertDialog dvi}
bind . <F6> {ConvertDialog ps}
bind . <F7> {ConvertDialog pdf}
bind . <Control-Next> {PageTab 1}
bind . <Control-Prior> {PageTab -1}
###############################################
## CREATE TOOLBARs ##
###############################################
set btnNum 0
proc CreateToolButton {frame command image hint keys} {
global dir btnNum color relief
if {$frame == "main"} {
set frm frmTool
} else {
set frm frmToolEdit
}
set comm [string trim $command "\""]
set btn [Button .$frm.$frame.btn_$btnNum -relief $relief(btn) -bd 1\
-command $comm -background $color(bg)]
image create photo img_$btnNum -format gif -file [file join $dir(img) $image]
$btn configure -image img_$btnNum
if {$keys != ""} {
set keys [string trim $keys "\""]
#puts "$keys - $comm"
bind . <$keys> "$comm"
}
pack $btn -side left
balloon $btn set [::msgcat::mc [string trim $hint "\""]]
incr btnNum
}
proc ReadToolBarFile {_dir} {
global dir font color file frm frame tool
foreach file [lsort [glob -nocomplain [file join $_dir toolbar *]]] {
puts "Found toolbar file - \'$file\'"
set frame [file tail $file]
if {$frame == "main"} {
set frm frmTool
} else {
set frm frmToolEdit
}
AddCheckBox .frmMenu.mnuView.m.tool $frame $file $frm
if {$tool($frame) == 1} {
ReadToolBar $file
}
}
}
proc AddCheckBox {m frame file frm} {
global font color tool
$m add checkbutton -label [::msgcat::mc "$frame"] -font $font(normal) -state normal\
-offvalue 0 -onvalue 1 -variable tool($frame) -selectcolor $color(selectbg)\
-command "ToolBar $frm $frame $file"\
-background $color(bg)
}
proc ReadToolBar {file} {
global dir font color
set frame [file tail $file]
puts "Create toolbar \'$frame\' from file \'$file\'"
if {$frame == "main"} {
set frm frmTool
} else {
set frm frmToolEdit
}
pack [frame .$frm.$frame -background $color(bg)] -side left -fill x
set fHandle [open $file]
while {[gets $fHandle line]>=0} {
set line [string trim $line]
set kw [string range $line 0 [expr [string first " " $line]-1]]
set l [string range $line [expr [string first " " $line] +1] end]
if {$kw == "button"} {
if [regexp -- {(\".*?\") (.*?) (\".*?\") (\".*?\")} $l m cmd img hint keys] {
#puts "$frame $cmd $img $hint"
CreateToolButton $frame $cmd $img $hint $keys
} elseif [regexp -- {(\".*?\") (.*?) (\".*?\")} $l m cmd img hint] {
CreateToolButton $frame $cmd $img $hint ""
}
}
if {$l == "Separator"} {
CreateSeparator $frame
}
if {$kw == "menu"} {
if [regexp -- {(.*?) (\".*?\")} $l m img hint] {
set menu [CreateToolMenu $frame $img $hint]
}
}
if {$kw == "cmd"} {
if [regexp -- {(\".*?\") (\".*?\") (\".*?\")} $l m cmd hint keys] {
InsertCommand $menu $cmd $hint "" $keys
} elseif [regexp -- {(\".*?\") (\".*?\")} $l m cmd hint] {
InsertCommand $menu $cmd $hint "" ""
}
if [regexp -- {separator} $l m] {
InsertSeparator $menu
}
}
if {$kw == "imagecmd"} {
if [regexp -- {(\".*?\") (\".*?\") (.*?)\.gif} $l m cmd hint im] {
InsertCommand $menu $cmd $hint $im ""
}
if [regexp -- {(\".*?\") (\".*?\") (.*?)\.gif (\".*?\")} $l m cmd hint im keys] {
InsertCommand $menu $cmd $hint $im $keys
}
}
}
close $fHandle
}
set mnuNum 0
proc CreateToolMenu {frame image hint} {
global dir font mnuNum color relief
if {$frame == "main"} {
set frm frmTool
} else {
set frm frmToolEdit
}
image create photo img_mnu$mnuNum -format gif -file [file join $dir(img) $image]
menubutton .$frm.$frame.m$mnuNum -image img_mnu$mnuNum -border 0\
-menu .$frm.$frame.m$mnuNum.m -background $color(bg) -relief $relief(menu)
set menu [menu .$frm.$frame.m$mnuNum.m -background $color(bg)]
pack .$frm.$frame.m$mnuNum -side left
balloon .$frm.$frame.m$mnuNum set [::msgcat::mc [string trim $hint "\""]]
incr mnuNum
return $menu
}
set cmdNum 0
proc InsertCommand {m cmd hint image keys} {
global font dir cmdNum color
set comm [string trim $cmd "\""]
set hint [string trim $hint "\""]
#puts "Create cmd - $m - $cmd $hint $image"
if {$keys != ""} {
set keys [string trim $keys "\""]
#puts "$keys - $comm"
bind . <$keys> "$comm"
if {$image != ""} {
set image [string trim $image]
image create photo img_$cmdNum -format gif -file [file join $dir(img) $image.gif]
$m add command -label [::msgcat::mc $hint] -font $font(normal) -state normal\
-command $comm -image img_$cmdNum -background $color(bg) -accelerator "$keys"
} else {
$m add command -label [::msgcat::mc $hint] -font $font(normal) -state normal\
-command $comm -background $color(bg) -accelerator "$keys"
}
} else {
if {$image != ""} {
set image [string trim $image]
image create photo img_$cmdNum -format gif -file [file join $dir(img) $image.gif]
$m add command -label [::msgcat::mc $hint] -font $font(normal) -state normal\
-command $comm -image img_$cmdNum -background $color(bg)
} else {
$m add command -label [::msgcat::mc $hint] -font $font(normal) -state normal\
-command $comm -background $color(bg)
}
}
incr cmdNum
}
proc InsertSeparator {m} {
$m add separator
}
proc CreateSeparator {frame} {
global dir btnNum color relief
if {$frame == "main"} {
set frm frmTool
} else {
set frm frmToolEdit
}
set btn [frame .$frm.$frame.btn_$btnNum -width 10 -background $color(bg) -borderwidth 0]
#set btn [Button .$frm.$frame.btn_$btnNum -relief $relief(btn) -bd 2 -background $color(bg) -width 0 -state disable]
pack $btn -side left -fill y -expand 1
incr btnNum
}
proc ToolBar {frm frame file} {
global tool
if {$tool($frame) == 0} {
#set tool($frame) 0
if {$frame == "main"} {
destroy .$frm.$frame
.frmTool configure -height 1
} else {
destroy .$frm.$frame
.frmToolEdit configure -height 1
}
return
} elseif {$tool($frame) == 1} {
#set tool($frame) 1
ReadToolBar $file
return
}
}
###############################################
proc CutPast {action} {
global nb
set node [$nb raise]
if {$node == "newproj" || $node == "settings" || $node == "about" || $node == ""} {
return
}
set text $nb.f$node.f.text
switch -- $action {
"copy" {
tk_textCopy $text
}
"cut" {
tk_textCut $text
}
"paste" {
tk_textPaste $text
}
"undo" {
$text undo
}
}
}
proc Select {type} {
global nb activeFile
set text $nb.f$activeFile.f.text
if {$type == "all"} {
$text tag remove sel 1.0 end
$text tag add sel 1.0 end
} elseif {$type == "remove"} {
$text tag remove sel 1.0 end
}
}
proc PopupMenu {text x y} {
set selIndex [$text tag ranges sel]
if {$selIndex != ""} {
tk_popup .frmMenu.mnuEdit.m.selection $x $y
} else {
tk_popup .frmMenu.mnuEdit.m $x $y
}
}
proc PopupMenuTab {menu x y} {
tk_popup $menu $x $y
}
###########
## STATUS BAR ##
set frm1 [frame .frmStatus.frmFileAttr -background $color(bg)]
set frm2 [frame .frmStatus.frmActive -background $color(bg)]
set frm3 [frame .frmStatus.frmFileSize -relief sunken -background $color(bg)]
set frm4 [frame .frmStatus.frmPos -background $color(bg)]
set frm5 [frame .frmStatus.frmFile -background $color(bg)]
set frm6 [frame .frmStatus.frmOvwrt -background $color(bg)]
set frm7 [frame .frmStatus.frmOther -background $color(bg)]
pack $frm1 $frm4 $frm6 $frm2 $frm5 $frm3 -side left -fill x
pack $frm7 -side left -fill x -expand true
set status(fileAttr) [label $frm1.lblFileAttr -width 30 -relief sunken -font $font(normal) -anchor w -background $color(bg)]
pack $frm1.lblFileAttr -fill x
set status(pos) [label $frm4.lblPos -width 10 -relief sunken -font $font(bold) -anchor w -background $color(bg)]
pack $frm4.lblPos -fill x
set status(ovwrt) [label $frm6.lblOvwrt -width 10 -relief sunken -font $font(normal) -anchor center -background $color(bg)]
pack $frm6.lblOvwrt -fill x
set status(active) [label $frm2.lblActive -width 25 -relief sunken -font $font(normal) -anchor center -background $color(bg) ]
pack $frm2.lblActive -fill x
set status(fileSize) [label $frm3.lblFileSize -width 10 -relief sunken -font $font(normal) -anchor w -background $color(bg)]
pack $frm3.lblFileSize -fill x
set status(encode) [label $frm5.lblFile -width 10 -relief sunken -font $font(normal) -anchor w -background $color(bg)]
pack $frm5.lblFile -fill x
set status(other) [label $frm7.lblOther -width 10 -relief sunken -font $font(normal) -anchor w -background $color(bg)]
pack $frm7.lblOther -fill x
#######
bind . <Control-n> {FileDialog new}
bind . <Control-ograve> {FileDialog new}
bind . <Control-o> {FileDialog open}
bind . <Control-ugrave> {FileDialog open}
$nbTree raise fileTree
############
$status(ovwrt) configure -text [::msgcat::mc "Insert"]
ReadToolBarFile $dir(gui) ;# system toolbars
ReadToolBarFile $dir(work_gui) ;# user toolbars
ReadHotKeysFile $dir(gui) ;# system hotkeys
ReadHotKeysFile $dir(work_gui) ;# users hotkeys
## FINDE EXTERNAL MODULES ##
FindModule

Some files were not shown because too many files have changed in this diff Show More