/ Forside / Teknologi / Hardware / Mac / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Mac
#NavnPoint
UlrikB 4810
kipros 1675
Klaudi 1010
myg 920
pifo 907
Stouenberg 838
molokyle 830
Bille1948 815
rotw 760
10  EXTERMINA.. 750
tetex, carbon emacs og xdvi
Fra : Thomas Bendsen


Dato : 10-03-07 23:02

Hej

Jeg har installeret teTeX via Fink og carbon emacs. Er der nogen som ved
hvordan jeg får emacs til at kunne starte xdvi? Når jeg åbner en tex-fil
kommer der en knap til formålet, men den virker ikke. LaTeX-knappen
virker fint.
Det er lykkedes mig at nå så langt så jeg kan starte xdvi fra et
terminal-vindue (hvis jeg samtidig har X11 kørende), men den vil altså
ikke starte fra emacs. Jeg kan ikke umiddelbart finde nogen
fejlmeddelelser som kan kaste yderligere lys over problemet.

Jeg kører Mac OS X 10.4.8

MVH Thomas Bendsen

 
 
Christian Lynbech (11-03-2007)
Kommentar
Fra : Christian Lynbech


Dato : 11-03-07 08:18


Prøv at checke variablen `exec-path' og se om den indeholder et
katalog der rammer xdvi.

Jeg har ikke den præcise forklaring, men jeg tror at det er noget i
stil med at når man starter en applikation som emacs ved at klikke i
finder, så starter den op med en meget minimal værdi for PATH
environment variablen hvorfra `exec-path' så initialiseres.

Nedenfor er noget kode jeg har sakset fra aquamacs som resetter
`exec-path' men du kan selvfølgelig også bare sætte den som du ønsker
det i din ".emacs".

Afhænngigt hvor hardcore en emacs bruger du er, og hvor mange
platforme du bevæger dig på, så er aquamacs en overvejelse værd. De
gør meget ud at integrere med OSX og havde som nævnt f.eks. løst
ovenstående problem og har en del udvidelser med som f.eks. auctex som
er et rigtig godt og meget avanceret TeX interface til emacs (auctex
findes dog også i Fink).

På den anden side opfører aquamacs sig til tider ikke helt som
standard emacs (det er samme kode base, men de konfigurerer ting
anderledes). Bemærk også at du skal have fat i det daglige snapshot
hvis du bruger et unicode tastatur layout og det har nogen problemer
med isearch.

URL'en for aquamacs er http://aquamacs.org/.

Kode til håndtering ef exec-path:

;;; path fixup (stolen from aquamacs, mac-extra-functions.el)

(defvar shell-login-switch nil
"Command-line switch to be used with the shell to get a login shell.
If nil, a switch is automatically chosen depending on
`shell-file-name'.
This is relevant only for `mac-read-environment-vars-from-shell'.")

(defun mac-read-environment-vars-from-shell ()
"Import the environment from the system's default login shell
specified in `shell-file-name'."
(with-temp-buffer
;; execute 'printenv' with the default login shell,
;; running the shell with -l (to load the environment)
(setq default-directory "~/")   ; ensure it can be executed
;; To Do: use call-process instead -> this here
;; will invoke two bashes

(let ((shell-login-switch
(or shell-login-switch
(if (string-match ".*/\\(ba\\|z\\)sh" shell-file-name)
"-l"
(if (string-match ".*/\\tcsh" shell-file-name)
""
(if (string-match ".*/ksh" shell-file-name)
"" ;; works for ksh
(message "Could not retrieve login shell environment with login shell: %s" shell-file-name)
;; won't work for csh, because it doesn't take -l -c ...
))))))

(call-process shell-file-name nil
t nil
shell-login-switch
shell-command-switch
"printenv"))
(goto-char (point-min))
(while (re-search-forward "^[A-Za-z_0-9]+=()\s*[^\x]*?
\s*}\s*$" nil t)
(replace-match "..." nil nil))
(goto-char (point-min))
(while (search-forward-regexp "^\\([A-Za-z_0-9]+\\)=\\(.*\\)$" nil t)
(setenv
(match-string 1)
(if (equal (match-string 1) "PATH")
(concat (getenv "PATH") ":" (match-string 2))
(match-string 2))))))

(defun mac-add-path-to-exec-path ()
"Add elements from environment variable `PATH' to `exec-path'."
(let ((l (split-string (getenv "PATH") ":")))
(mapc
(lambda (p)
(unless (member p l)
(nconc l (list p))))
exec-path)
(setq exec-path l)))

(unless (boundp 'aquamacs-version)
(mac-read-environment-vars-from-shell)
(mac-add-path-to-exec-path))



------------------------+-----------------------------------------------------
Christian Lynbech | christian #\@ defun #\. dk
------------------------+-----------------------------------------------------
Hit the philistines three times over the head with the Elisp reference manual.
- petonic@hal.com (Michael A. Petonic)

Thomas Bendsen (11-03-2007)
Kommentar
Fra : Thomas Bendsen


Dato : 11-03-07 20:29

Christian Lynbech wrote:
> Prøv at checke variablen `exec-path' og se om den indeholder et
> katalog der rammer xdvi.
>
Hej Christian

Jeg er normalt ikke bange for at rode med terminalvinduer og lignende,
men lige præcis emacs har altid været lidt af et mysterium for mig, så
allerede med ovenstående råd har du tabt mig (grunden til at jeg gerne
vil bruge den er at den så vidt jeg kan se skulle give mulighed for at
benytte "source specials").
Nå, men dit råd om at prøve Aquamacs var både forståeligt og brugbart.
Hvis jeg har X11 kørende, så kan Aquamacs starte xdvi. Desværre får jeg
følgende fejl når jeg forsøger at hoppe fra xdvi tilbage til emacs:
"emacsclient: can't find socket; have you startet the server"


MVH Thomas

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408946
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste