/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*/
/* */
/* P�l Hedne 1990 */
/* */
/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*/
extern latex_help;
extern MathKeys, NonMathKeys, DefMathKeys;
extern TexKeys, NormKeys;
extern math_key,tabbing_key,tabular_key,thebib_key;
extern keyboard;
/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; */
/* ; */
/* ; */
/* ; */
/* ; */
/* ; */
/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; */
_init (...)
{
assign_to_key ("<Ctrl-F1>", "latex");
message ("Ctrl-F1 aktiverer Latex macro Ver.PH/1.2");
}
/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; */
/* ; */
/* ; */
/* ; */
/* ; */
/* ; */
/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; */
latex (...)
{
int ikey, on_off, NorModus, MathModus;
string command;
global NorModus, on_off, MathModus;
if (!on_off)
{
on_off = 1;
/* if (!inq_macro("latex"))*/
load_macro ("latex");
/* error ("Latex loaded.");*/
/* if (!inq_macro("embrace"))*/
load_macro ("embrace");
/* error ("Embrace loaded.");*/
/* if (!inq_macro("latexmat"))*/
load_macro ("latexmat");
/* error ("Latexmat loaded.");*/
/* if (!inq_macro("gresk"))*/
load_macro ("gresk");
/* error ("Gresk loaded.");*/
autoload ("label","find_label");
/* error ("Flabel loaded.");*/
autoload ("gmatch","find_match");
/* error ("Gmatch loaded.");*/
autoload ("latexh","latex_help","gen_help");
/* error ("Latexh loaded.");*/
autoload ("norsk","nor_to_tex","tex_to_nor","NormKeys","TexKeys");
/* error ("Norsk loaded.");*/
autoload ("remmer","split_tex","join_tex");
/* error ("Remmer loaded.");*/
assign_to_key ("<Ctrl-F2>", "ToggleNor");
assign_to_key ("<Ctrl-F3>", "nor_to_tex");
assign_to_key ("<Shift-F3>", "tex_to_nor");
assign_to_key ("<Ctrl-F4>", "find_match");
assign_to_key ("<Shift-F4>", "disp_match");
assign_to_key ("<Ctrl-F7>", "ToggleMath");
assign_to_key ("<Ctrl-F8>", "find_label");
assign_to_key ("<Shift-F8>", "disp_label");
assign_to_key ("<Ctrl-F10>", "split_tex");
assign_to_key ("<Shift-F10>", "join_tex");
assign_to_key ("$", "dollar");
assign_to_key ("<Ctrl-a>", "array");
assign_to_key ("<Ctrl-b><a>", "begin_array");
assign_to_key ("<Ctrl-b><b>", "begin_thebibliography");
assign_to_key ("<Ctrl-b><d>", "begin_displaymath");
assign_to_key ("<Ctrl-b><f>", "begin_figure");
assign_to_key ("<Ctrl-b><i><i>", "begin_itemize");
assign_to_key ("<Ctrl-b><i><e>", "begin_enumerate");
assign_to_key ("<Ctrl-b><i><d>", "begin_description");
assign_to_key ("<Ctrl-b><m>", "begin_math");
assign_to_key ("<Ctrl-b><n>", "begin_tabbing");
assign_to_key ("<Ctrl-b><p>", "begin_minipage");
assign_to_key ("<Ctrl-b><q>", "begin_equation");
assign_to_key ("<Ctrl-b><t>", "begin_tabular");
assign_to_key ("<Ctrl-b><w>", "begin_document");
assign_to_key ("<Ctrl-b><y>", "begin_eqnarray");
assign_to_key ("<Ctrl-c>", "cite");
assign_to_key ("<Ctrl-d>", "displaymath");
assign_to_key ("<Ctrl-e><a>", "end_array");
assign_to_key ("<Ctrl-e><b>", "end_thebibliography");
assign_to_key ("<Ctrl-e><d>", "end_displaymath");
assign_to_key ("<Ctrl-e><f>", "end_figure");
assign_to_key ("<Ctrl-e><i><i>", "end_itemize");
assign_to_key ("<Ctrl-e><i><e>", "end_enumerate");
assign_to_key ("<Ctrl-e><i><d>", "end_description");
assign_to_key ("<Ctrl-e><n>", "end_tabbing");
assign_to_key ("<Ctrl-e><m>", "end_math");
assign_to_key ("<Ctrl-e><p>", "end_minipage");
assign_to_key ("<Ctrl-e><q>", "end_equation");
assign_to_key ("<Ctrl-e><t>", "end_tabular");
assign_to_key ("<Ctrl-e><w>", "end_document");
assign_to_key ("<Ctrl-e><y>", "end_eqnarray");
assign_to_key ("<Ctrl-f>", "figure");
assign_to_key ("<Ctrl-g>", "grad");
assign_to_key ("<Ctrl-h>", "latex_help");
assign_to_key ("<Ctrl-i><i>", "itemize");
assign_to_key ("<Ctrl-i><e>", "enumerate");
assign_to_key ("<Ctrl-i><d>", "description");
assign_to_key ("<Ctrl-i><d>", "description");
assign_to_key ("<Ctrl-j>", "footnote");
assign_to_key ("<Ctrl-k>", "caption");
assign_to_key ("<Ctrl-l>", "label");
assign_to_key ("<Ctrl-m>", "math");
assign_to_key ("<Ctrl-n>", "tabbing");
assign_to_key ("<Ctrl-o>", "table");
/* ctrl-p = pop_up_error !! */
assign_to_key ("<Ctrl-q>", "equation");
assign_to_key ("<Ctrl-r>", "ref");
assign_to_key ("<Ctrl-s><c>", "chapter");
assign_to_key ("<Ctrl-s><s>", "section");
assign_to_key ("<Ctrl-s><u>", "subsection");
assign_to_key ("<Ctrl-t>", "tabular");
assign_to_key ("<Ctrl-u><b>", "bold");
assign_to_key ("<Ctrl-u><c>", "caps");
assign_to_key ("<Ctrl-u><e>", "emphasize");
assign_to_key ("<Ctrl-u><i>", "italic");
assign_to_key ("<Ctrl-u><o>", "overline");
assign_to_key ("<Ctrl-u><r>", "roman");
assign_to_key ("<Ctrl-u><s>", "sansserif");
assign_to_key ("<Ctrl-u><t>", "typewriter");
assign_to_key ("<Ctrl-u><u>", "underline");
assign_to_key ("<Ctrl-v>", "minipage");
assign_to_key ("<Ctrl-w>", "document");
assign_to_key ("<Ctrl-x>", "mbox");
assign_to_key ("<Ctrl-y>", "eqnarray");
NorModus = 0;
MathModus = 0;
assign_to_key ("<Enter>", "r_indent");
message ("Latex template installed.Press Ctrl-h for help.");
}
else
{
on_off = 0;
if (inq_macro("latex"))
{delete_macro ("latex");
/* error ("Latex removed.");*/
}
if (inq_macro("embrace"))
{delete_macro ("embrace");
/* error ("Embrace removed.");*/
}
if (inq_macro("latexmat"))
{delete_macro ("latexmat");
/* error ("Latexmat removed.");*/
}
if (inq_macro("gresk"))
{delete_macro ("gresk");
/* error ("Gresk removed.");*/
}
if (inq_macro("label"))
{delete_macro ("label");
/* error ("Label removed.");*/
}
if (inq_macro("gmatch"))
{delete_macro ("gmatch");
/* error ("Gmatch removed.");*/
}
if (inq_macro("latexh"))
{delete_macro ("latexh");
/* error ("Latexh removed.");*/
}
if (inq_macro("norsk"))
{delete_macro ("norsk");
/* error ("Norsk removed.");*/
}
if (inq_macro("remmer"))
{delete_macro ("remmer");
/* error ("Remmer removed.");*/
}
message ("Latex template removed.");
keyboard();
}
}
/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; */
/* ; */
/* ; */
/* EMBRACE ; */
/* ; */
/* ; */
/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; */
embrace (...)
{
int line, col, mtype, sw;
int mline1, mcol1, mlinex, mcolx;
string command;
get_parm (0, command);
get_parm (1, sw);
inq_position (line, col);
command = lower (command);
if (sw == -1)
command = "{" + ("\\" + (command + " "));
else if (sw == 1)
command = command + "{";
else
command = "\\" + (command + "{");
if (command == "\\cite{")
command = "~" + command;
if (command == "\\ref{")
command = "~" + command;
mtype = inq_marked (mline1, mcol1, mlinex, mcolx);
if (mtype > 0)
{
move_abs (mline1, mcol1);
insert (command);
move_abs (mline1, mcol1);
swap_anchor ();
move_abs (mlinex, mcolx + 1);
if (mline1 == line)
move_abs (mlinex, (mcolx + strlen (command)) + 1);
insert ("}");
inq_position (line, col);
move_abs (line, col - 1);
}
else
{
command = command + "}";
insert (command);
move_rel (0, -1);
}
}
/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; */
/* */
/* PUT COMMAND */
/* */
/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; */
begin_command (...)
{
int line, col, ins;
string command;
if (get_parm (0, command))
{
ins = insert_mode (1);
inq_position (line, col);
move_rel (0, 1 - col);
insert ("\\begin{" + (command + "}\n"));
move_abs (line + 1, col + 4);
insert_mode (ins);
}
}
/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; */
/* ; */
/* PUT COMMAND ; */
/* ; */
/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; */
end_command (...)
{
int line, col, ins;
string command;
if (get_parm (0, command))
{
ins = insert_mode (1);
inq_position (line, col);
move_rel (0, 1 - col);
insert ("\\end{" + (command + "}\n"));
move_abs (line + 1, col);
insert_mode (ins);
}
}
/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; */
/* ; */
/* ; */
/* ; */
/* ; */
/* ; */
/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; */
put_commands (...)
{
int i, line, col, mtype;
int j, ins;
int mline1, mcol1, mlinex, mcolx;
string text, CR, command, ins_text;
get_parm (0, command);
command = lower (command);
ins_text = " ";
if (command == "itemize")
ins_text = " \\item ";
if (command == "enumerate")
ins_text = " \\item ";
sprintf (CR, "%c", 13);
inq_position (line, col);
mtype = inq_marked (mline1, mcol1, mlinex, mcolx);
ins = insert_mode (1);
if (mtype > 0)
{
move_abs (mline1, mcol1);
insert ("\\begin{" + (command + "}\n"));
move_abs (mline1, mcol1);
swap_anchor ();
i = mline1;
while (i < mlinex)
{
++i;
move_abs (i, mcol1);
if (i == mline1 + 1 && mcol1 > 1)
{
j = 1;
move_abs (i, 1);
while (j < mcol1)
{
insert (" ");
++j;
}
}
insert (ins_text);
}
move_abs (mlinex + 1, mcol1);
text = read ();
if (text != CR)
{
move_abs (mlinex + 1, mcol1);
insert (ins_text);
move_abs (mlinex + 2, 1);
if (mcol1 > 1)
{
j = 1;
while (j <= mcol1)
{
insert (" ");
++j;
}
}
}
else
move_abs (mlinex + 1, mcol1);
insert ("\\end{" + (command + "}\n"));
move_abs (line + 2, 1);
end_of_line ();
}
else
{
insert ("\\begin{" + (command + "}\n\n"));
move_rel (0, col-1);
insert ("\\end{" + (command + "}"));
move_abs (line + 1, col + 4);
}
insert_mode (ins);
}
/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; */
ToggleNor (...)
{
if (NorModus == 1)
{
message ("Norsk tegnsett p�");
NormKeys ();
NorModus = 0;
}
else
{
message ("Norsk tegnsett av");
TexKeys ();
NorModus = 1;
}
}
/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; */
ToggleMath (...)
{
int ipar;
if (get_parm (0, ipar))
MathModus=ipar;
else
{
if (MathModus == 0)
MathModus=1;
else
MathModus=0;
}
if (MathModus == 0)
{
NonMathKeys ();
message ("Math modus off");
}
else
{
MathKeys ();
message ("Math modus on");
}
}
/* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; */
dollar (...)
{
insert("$");
ToggleMath();
}