[OS X TeX] Re: gnu fmt, or equivalent, for TeX?

Peter Dyballa Peter_Dyballa at Web.DE
Thu Apr 1 06:41:55 EDT 2010

Am 01.04.2010 um 10:48 schrieb Ramón Figueroa-Centeno:

> <http://de.narkive.com/2006/11/23/756149-iso-8859-1-q-pretty-printer-f-fcr-latex-code.html 
> >
> emacs -batch -Q -eval '(load "auctex.el" nil t t)' datei.tex -eval  
> '(progn
> (LaTeX-fill-buffer nil) (save-buffer))'

This line is from Ralf Angeli, one of the AUCTeX authors. Here GNU  
Emacs is launched into batch mode and loading of any init files is  
inhibited by -Q. So one needs to tell it to load AUCTeX (via the first  
-eval[uate] ELisp statement) and then two other ELisp statements are  
applied on the loaded TeX file, datei.tex. Obviously LaTeX-fill-buffer  
is a function which justifies LaTeX code – and it comes from the  
AUCTeX file latex.el. The "progn" in the second expression to be  
eval'ed is necessary that both "lines" are executed in sequence  
(evaluation would end when the first expression evals to t).

This works OK, so far, except vast use of options when loading a  
package produces a look which I don't tolerate. I've also seen it  
destroying meaningful comments, i.e., comments formatted in a way to  
make understanding of code things easier or providing alternatives of  
loading a package, re-newing or defining a command or macro in many  
ways. And actually some indentation in this TeX code is removed!

I'd use it only in real desperate cases of real desperate foreign  
files! (Manually formatting paragraphs looks like being more  

And another AUCTeX author, David Kastrup, contributed these line for  
vim (it saves its working copy and delegates to GNU Emacs and AUCTeX  
the job of justifying and then re-reads the file's new contents):

> :w
> :!emacs -batch -Q -eval '(load "auctex.el" nil t t)' % -eval '(progn
> (LaTeX-fill-buffer nil) (save-buffer))'
> :r

No reports are given on how and whether this function actually works  
in GNU Emacs.

> <http://newsgroups.derkeiler.com/Archive/De/de.comp.text.tex/2007-03/msg00283.html 
> >
> emacs -u [Nutzername] -batch -l tex-site [dateiname.tex] --eval
> '(indent-region (point-min) (point-max) nil)' --eval '(LaTeX-fill- 
> buffer
> nil)' --eval '(save-buffer)'

Here Stefan Lagotzki explains that "(indent-region (point-min) (point- 
max) nil)" won't work in GNU Emacs newer than version 21.4. The code '- 
l tex-site' also makes clear that the whole line is meant for old  
AUCTeX which was loaded via a tex-site.el file and had a separated  
preview.el. New AUCTeX versions also don't need the indent-region  
call. The code '-u [Nutzername]' is just '-u [user]' and allows to  
load this particular user's init file. So it's probably better to use  
Ralf Angeli's compact code.



Atheism is a non prophet organization.

More information about the MacOSX-TeX mailing list