All, What can people tell me about setting up Emacs to work with Context? I'd like to gather all information I can. Thanks.
David Arnold wrote:
What can people tell me about setting up Emacs to work with Context?
I'd like to gather all information I can.
Hello David, I run fptex using Emacs 21.3 as an editor on a win2k box. The customizations I describe below, have been hoarded from various sources over some period (which of course has generated spaghetti code). Regularly, I promise myself, that I'll clean the code up, but unfortunately my emacs has now become so electric, and the code so opaque, that for me, it would be a major effort. The ASCII figure below, shows how I've grouped my customizations into different files. I'd like to say that each file customizes a specific behaviour in emacs, but I can't; the split up is not that logical. default.el | -------------------------- | | mmm-site.el text-mode-site.el | context-site.el Starting from the top: default.el contains the look and feel. My preferences being to: 1) keep the Emacs display fairly small (80 character wide, and 30 lines deep); 2) have syntax highlighting wound up to the maximum The only external lisp code, in default.el is for parenthesis highlighting. The package is called mic-paren.el. ;; default.el ------------------------------------------------------- ;; set a default font for W3 (setq w32-enable-italics t) ; This must be done before font settings! ;Set the default color, font and frame size for the initial frame. (setq default-frame-alist '(;(menu-bar-lines) (vertical-scroll-bars) (top . 30) (left . 30) (width . 80) (height . 30) (cursor-color . "Red") (cursor-type . bar) (foreground-color . "black") (background-color . "IVORY") (font . "-*-Courier New-normal-r-*-*-11-82-96-96-c-*-iso8859-1"))) (set-face-background 'modeline "navy") (set-face-foreground 'modeline "gold") (set-face-font 'italic "-*-Courier New-normal-i-*-*-11-82-96-96-c-*-iso8859-1") (set-face-font 'bold "-*-Courier New-bold-r-*-*-11-82-96-96-c-*-iso8859-1") (set-face-font 'bold-italic "-*-Courier New-bold-i-*-*-11-82-96-96-c-*-iso8859-1") ;; display ISO-Latin-1 characters with accents ;; required for gnus summary display (standard-display-european t) ;; switch to ISO-Latin-1 (emacs > 20.3) (set-language-environment "Latin-1") ;; Set the default coding system to be foo-unix, instead of the foo-dos (setq default-buffer-file-coding-system 'latin-1-unix) ;; allow multiple major modes (require 'mmm-site) ;; completion-ignored-extensions (setq completion-ignored-extensions (append completion-ignored-extensions (list ".ilg" ".ind" ".pdf" ".tui" ".tuo" ".ted" ".tmp" ".orig" ".ps" ".mp" ".mpo" "mpd" ".1" ".2" ".3" ".4" ".5" ".6" ".7" ".8" ".9"))) ;; fontification font-lock.el ;; Must be defined before font lock is loaded. (setq font-lock-maximum-decoration t) (global-font-lock-mode t) ;; lazy-lock-mode on by default (setq font-lock-support-mode 'lazy-lock-mode lazy-lock-defer-on-scrolling t) ;; mic-paren.el display highlighting on parenthesis ;; http://www.docs.uu.se/~mic/emacs.html (require 'mic-paren) (paren-activate) ;; text mode (require 'text-mode-site) ;; end of default.el----------------------------------------------------- mmm-site Because ConTeXt has now become so intertwined with metapost, I now run two major modes within a single buffer. I've embedded the metapost inside the ConTeXt, using the external mode, MMM Mode. This package also doesn't come with Emacs. ;; mmm-site.el -------------------------------------------------- ;; load just enough of mmm mode so that it turns itself on (require 'mmm-auto) (setq mmm-global-mode 'maybe) ;; for context/metapost (mmm-add-group 'context-metapost '((context-MPgraphic :submode metapost-mode :face mmm-code-submode-face :front "\\\\startuseMPgraphic" :back "\\\\stopuseMPgraphic") (context-MPcode :submode metapost-mode :face mmm-code-submode-face :front "\\\\startMPcode" :back "\\\\stopMPcode") )) (add-to-list 'mmm-mode-ext-classes-alist '(nil "\\.ctx\\'" context-metapost)) (provide 'mmm-site) ;; ---------------------------------------------------------------------- text-mode-site.el text-mode-site provide a couple of electric features, that are common to all text files (XML files, emails, etc.). I'm a very slow typist, and word expansion speeds up my typing. (After my space-bar, I think ctrl-<TAB> is my most used key.) Bracket completion is also very useful. ;;; text-mode-site.el --------------------------------------------------- ;;;;;;;;;;;;;;;;;;;;;Ralf Stubner (from comp.text.tex newsgroup) (require 'tempo) (setq transient-mark-mode t) ; `tempo-define-template' returns an interactive function, which is ; then bound to the appropriate key. The `r' simply stands for ; `region'. There are many more possibilities here. (defun my-text-mode-hook () (local-set-key "{" (tempo-define-template "TeX-schweif" '("{" r "}"))) (local-set-key "(" (tempo-define-template "TeX-rundekl" '("(" r ")"))) (local-set-key "[" (tempo-define-template "TeX-eckigek" '("[" r "]"))) ;; (local-set-key ;; "^" (tempo-define-template "TeX-exponen" '("^{" r "}"))) ;; (local-set-key ;; "_" (tempo-define-template "TeX-subscri" '("_{" r "}"))) ;; (local-set-key ;; "$" (tempo-define-template "TeX-dollarm" '("$" r "$"))) (local-set-key "<" (tempo-define-template "XML-tag" '("<" r ">"))) (turn-on-filladapt-mode) (ispell-minor-mode 1) (abbrev-mode 1)) (add-hook 'text-mode-hook 'my-text-mode-hook) ;;;;;;;;;;;;;;;;;;;;; ;; Klaus Berndl ;; we want to complete and expand as much as possible in all buffers. ;; order of try-functions is significant! ;; includes the whole dabbrev-stuff! (require 'hippie-exp) (setq hippie-expand-try-functions-list '(;; try-complete-tempo-tag try-expand-dabbrev try-expand-dabbrev-all-buffers try-expand-dabbrev-from-kill try-complete-file-name-partially try-complete-file-name ;; try-expand-list try-complete-lisp-symbol-partially try-complete-lisp-symbol try-expand-whole-kill)) ;; the expand-function. Called with a positive prefix <P> it jumpes direct ;; to the <P>-th try-function. (defun my-hippie-expand (arg) (interactive "P") ;; hippie-expand does not have a customization-feature (like ;; dabbrev-expand) to search case-sensitive for completions. ;; So we must set 'case-fold-search' temp. to nil! (let ((old-case-fold-search case-fold-search)) (setq case-fold-search nil) (hippie-expand arg) (setq case-fold-search old-case-fold-search) ) ) ;; all expansion is done by 'my-hippie-expand bound to C-TAB! (global-set-key (quote [C-tab]) (quote my-hippie-expand)) ;; (require 'context-site) (provide 'text-mode-site) ;; end of text-mode-site ------------------------------------------- context-site.el The other major mode is ConTeXt, it requires the external package, context.el, which is available from the third-party packages on Hans Hagen's pragma-ade web site. ;; context-site.el ----------------------------------------------------- (require 'context) (setq auto-mode-alist (cons '("\\.ctx$" . tex-mode) auto-mode-alist)) (provide 'context-site) ;; end of context-site.el---------------------------------------------- As you can see it is very spartan. Indeed the file isn't really needed since I call conTeXt files by using Local variables hooks in my ConTeXt source code. That is, I append, the following tags to the end of every ConTeXt file: %%% Local Variables: %%% mode:context %%% indent-tabs-mode:nil %%% End: Invoking ConTeXt: I don't use Emacs to invoke ConTeXt. I invoke it from a separate command shell, using the fptex executable texexec, and a view the resultant pdf file using the fptex executable pdfopen, and afterwards close it using pdfclose.
On Sat, 26 Jul 2003, David Arnold wrote:
What can people tell me about setting up Emacs to work with Context?
I use TeXLive7 + NTEmacs + Berend Boer's context.el (ConTeXt mode) and my OS is Windows (NT/2000/XP depending on the computer I happen to be using). I tried using WinEdt as the editor, but as I was already familiar with Emacs I found that using NtEmacs was a lot easier (less mousework, too) and I now do all my ConTeXt work with this setup. NTEmacs comes on the TeXLive CD so installing it is very easy, this can be done in connection with the TeXLive installation or right after it. I've never had problems with the Emacs part of the installation. :-) After installing TeXLive and NTEmacs I go to Berend's homepage and get the context.el (http://www.berenddeboer.net/emacs/index.html), create a .emacs settings file and add the required lines in there (or, nowadays, I just copy my old .emacs from another computer); the README tells you what to do. Or, if you think it will be helpful, I can give you a copy of mine or the relevant lines of mine. There's another helpful Emacs mode that I've downloaded (and made work) on one of the computers I use, but I haven't really gotten used to it yet; should be real handy, though: etexshow, Patrick Gundlach's browser for ConTeXt commands. That you can get at http://levana.de/emacs/. I have no idea how to make things work in unix or linux, but the Windows part is not too bad if one has an idea of Emacs otherwise. Hope this helps, Mari
Mari, Thanks. I have all of this working. At 10:33 AM 7/28/03 +0300, you wrote:
On Sat, 26 Jul 2003, David Arnold wrote:
What can people tell me about setting up Emacs to work with Context?
I use TeXLive7 + NTEmacs + Berend Boer's context.el (ConTeXt mode) and my OS is Windows (NT/2000/XP depending on the computer I happen to be using). I tried using WinEdt as the editor, but as I was already familiar with Emacs I found that using NtEmacs was a lot easier (less mousework, too) and I now do all my ConTeXt work with this setup.
NTEmacs comes on the TeXLive CD so installing it is very easy, this can be done in connection with the TeXLive installation or right after it. I've never had problems with the Emacs part of the installation. :-)
After installing TeXLive and NTEmacs I go to Berend's homepage and get the context.el (http://www.berenddeboer.net/emacs/index.html), create a .emacs settings file and add the required lines in there (or, nowadays, I just copy my old .emacs from another computer); the README tells you what to do. Or, if you think it will be helpful, I can give you a copy of mine or the relevant lines of mine.
There's another helpful Emacs mode that I've downloaded (and made work) on one of the computers I use, but I haven't really gotten used to it yet; should be real handy, though: etexshow, Patrick Gundlach's browser for ConTeXt commands. That you can get at http://levana.de/emacs/.
I have no idea how to make things work in unix or linux, but the Windows part is not too bad if one has an idea of Emacs otherwise.
Hope this helps, Mari _______________________________________________ ntg-context mailing list ntg-context@ntg.nl http://www.ntg.nl/mailman/listinfo/ntg-context
What can people tell me about setting up Emacs to work with Context? I use the AUCTeX from CVS, which can do ConTeXt by now (and has
Hi, On Sat, Jul 26, 2003 at 04:18:30PM -0700, David Arnold wrote: the keybindings I'm used to). Unluckily, it always says "Problems after n pages", even though it compiles ok... Anyways, except for that, it works for me... Greetings, Alex
Alexander Klink
What can people tell me about setting up Emacs to work with Context? I use the AUCTeX from CVS, which can do ConTeXt by now (and has the keybindings I'm used to). Unluckily, it always says "Problems after n pages", even though it compiles ok... Anyways, except for that, it works for me...
Could you send me off list an example file and an explanation how exactly you get the error? It works fine for me. Please make sure you use the latest cvs version (did not work on it for some time, though). I'll be happy to fix it. Patrick
participants (5)
-
Alexander Klink
-
David Arnold
-
Guy Worthington
-
Mari Voipio
-
Patrick Gundlach