% -*- mode: SLang -*-
%
% This file is full with examples of things you can add to your private
% jed.rc (e. g. ~/.jedrc or ~/.jed/jed.rc) to improve and customize the
% LaTeX mode.
%
% Setting these variables produce a more verbose backtrace upon error.
_traceback = 1;
_slangtrace = 1;
% These lines should be anywhere in your jed.rc to make the files of the
% LaTeX mode will be found if you place them in your home directory.
#ifdef MSWINDOWS
Jed_Home_Directory = path_concat(getenv("APPDATA"), "jed");
#else
Jed_Home_Directory = path_concat(getenv("HOME"), ".jed");
#endif
set_jed_library_path(Jed_Home_Directory + "," + get_jed_library_path());
Jed_Highlight_Cache_Dir = path_concat(Jed_Home_Directory, "dfa");
% If your TeX binaries aren't in the PATH you can use one of these
% commands to make jed find them:
% putenv("PATH=/media/cdrom/texlive/bin/i386-linux:$PATH"$); % UNIX
% putenv("PATH=D:\texlive\bin\win32:$PATH"R$); % WINDOWS
% Add these lines to load the LaTeX mode for files with the extension .tex
% and .latex.
add_mode_for_extension("latex", "tex");
add_mode_for_extension("latex", "ltx");
add_mode_for_extension("latex", "sty");
add_mode_for_extension("latex", "cls");
#ifdef HAS_DFA_SYNTAX
% Enable dfa syntax highlighting for the LaTeX mode.
enable_dfa_syntax_for_mode("LaTeX");
#endif
% % This function is run after the file latex_external.sl was loaded. You can
% % place here commands they should run exaclty one time, but need functions
% % defined in latex_external.sl
% define after_latex_external_load_hook()
% {
% % Define your own configuration for building and viewing the output file.
% call_function("latex_external->cust_set",
% "rubber_srcspcl", "Rubber with source specials",
% "", "",
% "rubber --src-specials --inplace %m", "",
% "", "rubber --clean %m",
% "",
% "xdvi -nofork -editor %e -sourceposition %l:%c%f %M.dvi",
% 0);
% % Redefine the print command and in the second call the makeindex and the
% % print command of the default configurations.
% call_function("latex_external->cust_set",
% "rubber_dvi", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
% "sh -c dvilj4l% -q% -e-% %M.dvi% |% lp% -t% \"%M\"% -",
% NULL, NULL);
% call_function("latex_external->cust_set",
% "latex", "LaTeX with Xindy", NULL,
% "texindy --language german-din %M.idx", NULL, NULL,
% NULL, NULL,
% "sh -c dvilj4l% -e-% \"%M.dvi\"|lp% -t% \"%M\"",
% NULL, NULL);
% }
% Select your own configurations
variable LaTeX_Config = "rubber_dvi";
% Add your own template directory to the search list.
variable LaTeX_Template_Dir = path_concat(Jed_Home_Directory, "latex-templ");
#ifdef UNIX
LaTeX_Template_Dir += ",/usr/local/share/jjm/latex-templ-public";
#endif
% Set your prefered packages to be used for templates.
variable LaTeX_Default_Packages = "babel:inputenc:fontenc:fixltx2e:microtype";
% Set your prefered class options to be used for templates.
variable LaTeX_Default_Class_Options = "";
% The file where informations about newly known cmds and envs should go
variable LaTeX_File_New = path_concat(Jed_Home_Directory, "latex_cfg.sl");
% Define an abbreviation table for your LaTeX files
#if (_slang_utf8_ok)
create_abbrev_table("TeX", "0-9A-Za-z�-��-��-");
#else
create_abbrev_table ("TeX", "0-9A-Za-z�-��-��-");
#endif
define_abbrev ("TeX", "ie", "i.e.\\ "); % that is
define_abbrev ("TeX", "eg", "e.g.\\ "); % for example
define_abbrev ("TeX", "latex","\\LaTeX{}");
define_abbrev ("TeX", "tex", "\\TeX{}");
% german abbreviations
define_abbrev ("TeX", "dh", "d.\\,h."); % das hei�t
define_abbrev ("TeX", "zB", "z.\\,B."); % zum Beispiel
define_abbrev ("TeX", "idR", "i.\\,d.\\,R."); % in der Regel
define_abbrev ("TeX", "obda", "o.\\,B.\\,d.\\,A.");
% This is needed for the symbol Key_Shift_Tab in the latex_mode_hook below
require("keydefs");
% This function is run after the file latex.sl was loaded. You can place
% here commands they should run exaclty one time, but need functions
% defined in latex.sl
define after_latex_load_hook(mode)
{
% Define a new completion pair for the environment faelle. Nothing is
% inserted before the newline and \item after the newline.
call_function("latex->set_nl_completion", "faelle", "", "\\item ");
% Define additional commands for the ^cs completion list.
call_function("latex->cmd_register", "bigm", 0, 1, "same as \big but add more horizontal space before and after delimiter"R, "amsmath", NULL);
call_function("latex->cmd_register", "biggm", 0, 1, "same as \bigg but add more horizontal space before and after delimiter"R, "amsmath", NULL);
call_function("latex->cmd_register", "Bigm", 0, 1, "same as \Big but add more horizontal space before and after delimiter"R, "amsmath", NULL);
call_function("latex->cmd_register", "Biggm", 0, 1, "same as \Bigg but add more horizontal space before and after delimiter"R, "amsmath", NULL);
call_function("latex->cmd_register", "complement", 0, 1, "Symbol for complement of a set", "amsmath", NULL);
call_function("latex->cmd_register", "null", 0, 0, "empty \mbox{}"R, "", NULL);
% Maybe you use these commands in your documents.
call_function("latex->cmd_register", "todo", 1, 0, "If you have to add or rework something, make a note", "", NULL);
call_function("latex->cmd_register", "help", 1, 0, "If something is sketchy, write down you question", "", NULL);
call_function("latex->cmd_register", "abs", 1, 1, "Absolute value: |x|", "", NULL);
call_function("latex->cmd_register", "norm", 1, 1, "Mathematical norm: ||x||", "", NULL);
% If you want different default options for amsmath ...
% call_function("latex->pkg_register", "amsmath", "intlimits,leqno", "The main package for mathematical stuff", "amsldoc", NULL);
% Define a new key combination ^cnd (^cn are additional math
% commands) to insert the command \vdash.
definekey_reserved("latex->cmd_insert(\"vdash\")", "nd", mode);
definekey_reserved("latex->cmd_insert(\"abs\")", "na", mode);
definekey_reserved("latex->cmd_insert(\"norm\")", "nn", mode);
definekey("latex->textormath(\"self_insert_cmd\", \"local_tex_math_pipe\")",
"|", mode);
% Bind array_next_cell to TAB and indent_line to ^X TAB
definekey("latex->array_next_cell", "\t", mode);
definekey("latex->array_prev_cell", Key_Shift_Tab, mode);
definekey("indent_line", "^X\t", mode);
% Load configuration entered while previous LaTeX sessions
if (file_status(LaTeX_File_New) == 1)
() = evalfile(LaTeX_File_New);
}
% This function is loaded by latex_mode() after the LaTeX mode is setup
% for a file
define latex_mode_hook ()
{
% In LaTeX documents you can use the whole width of the screen.
WRAP=80;
% Do not ask if this file should be saved before running LaTeX.
_set_buffer_flag(0x80);
% fold the preample
if ( bol_fsearch("\\documentclass") )
{
() = down(1);
call_function("latex->fold", 0);
bob();
}
% fold the first sublevel in document
if ( bol_fsearch("\\begin{document}") )
{
() = down(1);
call_function("latex->fold", 1);
bob();
}
}