When compiling a TeX document I would like to have two buffers containing the LaTeX output and TeX-error-overview in separate frames which are positioned relative to the current frame (the error overview in a shallow frame at the bottom and the output on the right side). How can I do that?

  • 2
    See the manual regarding frames: gnu.org/software/emacs/manual/html_node/elisp/… You'll need to use the make-frame function and pass appropriate parameters for position, height, width, etc. Emacs 25 has some important bug fixes for frame positioning and sizing at the time of creation. In terms of targeting a specific frame with a buffer, see How to intercept a file before it opens and decide which frame: stackoverflow.com/questions/18346785/…
    – lawlist
    Apr 24, 2016 at 17:35
  • Note that many Emacs newcomers confuse frames with windows. If you do mean frames, then the comment immediately above should get you started. Tying all that in to the AUCTeX library would be time consuming, but is doable -- another forum participant will need to help out with that aspect. Please consider adding some better details regarding how you wish to organize the various frames and windows -- a screenshot of a proposed solution would certainly be helpful.
    – lawlist
    Apr 24, 2016 at 17:41

1 Answer 1


Setting up frames (at least the first two) is pretty easy. Here's my code below for doing that. The first set of numbers positions the first initial frame, and the default positions "all the other ones" (I only have two frames running). If you're going to have 3 frames, then you'll have to use make-frame as lawlist said.

I'm also wondering if you mean "windows" instead of frames... But in case you really do mean frames, here's my positioning code to get you started. A frame can have any number of windows, split horizontally or vertically, as you please..) Good luck.

(defun run-vesta-setup-funs ()

(defun set-vesta-frame-size ()
  (setq initial-frame-alist
        '((top . 0)
          (left . 420)
          (width . 180)
          (height . 60)
          (cursor-color . "black") (cursor-type . box)
          (foreground-color . "black")
          (background-color . "grey80")))) ; need at least grey75 on mac
;; (background-color . "antique white")
;; (font . "--Lucida Console-normal-r---11-82---c--*-#204-")

(setq default-frame-alist
      (append default-frame-alist
              '((top . 10)
                (left . 10)
                (width . 180)
                (height . 55)
                (cursor-type . box)
                (cursor-color . "black")
                (foreground-color . "black")
                (background-color . "grey80")))) ; need at least grey75 on mac

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.