[OS X TeX] Emacs 22.92, %! and TeXShop

Jens Noeckel noeckel at uoregon.edu
Fri Jan 26 05:49:41 CET 2007


On Jan 25, 2007, at 6:49 PM, Stephen Moye wrote:

> On Jan 25, 2007, at 9:10 PM, Jens Noeckel wrote:
>
>>
>> On Jan 25, 2007, at 5:41 PM, Stephen Moye wrote:
>>
>>> On Jan 25, 2007, at 8:34 PM, Stephen Moye wrote:
>>>
>>>> I just started using emacs 22.92 -- I have been using emacs  
>>>> 22.50. Unlike v22.50, when I open a TeXShop TeX file with emacs  
>>>> 22.92, it is opened as a PostScript file. I imagined that it had  
>>>> something to do with the first line of the file:
>>>>
>>>> 	%!TEX TS-program = latex
>>>>
>>>> Sure enough, I went digging using
>>>>
>>>> 	C-h v auto-mode-alist
>>>>
>>>> and found a line in files.el:
>>>>
>>>> 	("%![^V]" . ps-mode)
>>>>
>>>> in addition to what I expected:
>>>>
>>>> 	("\\.[tT]e[xX]\\'" . tex-mode)
>>>>
>>>> So emacs is looking inside the file to make a better guess about  
>>>> what kind of file it is. I tried changing
>>>>
>>>> 	("%![^V]" . ps-mode)
>>>>
>>>> to
>>>>
>>>> 	("%![^VT]" . ps-mode)
>>>>
>>>> but that did not work.
>>>>
>>>> I really like emacs 22.nn, but this is a bit of a bother. Can I  
>>>> put something in my .emacs file to counter this unwanted  
>>>> cleverness? I know that I can put
>>>>
>>>> 	%-*-latex-*-
>>>>
>>>> as the first line of the file and both emacs and TeXShop will be  
>>>> happy, but that seems an unnecessary complication.
>>>>
>>>> Any suggestions? Or, alternatively, where else should I more  
>>>> appropriately post this query?
>>>>
>>>> Thank you for any insights.
>>>
>>> Sorry, but I should have mentioned that I am using emacs under X11.
>>>
>>>
>>>
>>> Stephen
>>>
>>
>> Stephen,
>> not knowing what exactly is in your .emacs already, I would  
>> suggest adding the line
>>
>>           (setq auto-mode-alist (cons '("\\.tex$" . tex-mode) auto- 
>> mode-alist))
>>
>> as close to the end of .emacs as possible (so that it doesn't get  
>> overridden by other associations - the order of these things  
>> matters).
>>
>> Jens
>
> I placed the line you suggested at the very end of my .emacs file  
> (which has very little in it), but a TeX file with %! at the top  
> still opened as a PostScript file.
>
> I am puzzled. Shouldn't the extension take precedence over anything  
> else? Surely a .tex file is almost certainly not going to be a  
> PostScript file...
>
> Anyway, thank you for the suggestion though.
>
> Stephen
>
> PS I did make the discovery that if the first line of the TeX file  
> is empty and the *second* line begins with %! then the emacs  
> mechanism is fooled and the file opens in TeX mode. Hmmmm...


Ah, I just saw in the documentation that the magic-mode-alist takes  
precedence over the auto-mode-alist. I had not encountered this  
problem before, but I can reproduce it now with Carbon Emacs from  
fink. Here is something that fixes the problem: if you put this line  
in your .emacs, it will be stricter about what it considers as  
postscript:

(mapc (lambda (pair) (if (eq (cdr pair) 'ps-mode) (setcar pair '"%!PS 
[^V]"))) magic-mode-alist)

Now you have to have %!PS at the start to make it a PS file. What  
this code does is simply to search the magic-mode-alist for the ps- 
mode definition and replace the condition for recognizing it. This  
worked for me - hope it solves your problem, too.

Jens







------------------------- Helpful Info -------------------------
Mac-TeX Website: http://www.esm.psu.edu/mac-tex/
TeX FAQ: http://www.tex.ac.uk/faq
List Archive: http://tug.org/pipermail/macostex-archives/
List Reminders & Etiquette: http://www.esm.psu.edu/mac-tex/list/





More information about the macostex-archives mailing list