Frage

Ich bin mit StatWeave SAS Code aus LaTeX-Dateien auszuführen. Ich mag eine Datei in einem Texteditor öffnen zu können und das Haupt-LaTeX-Dokument mit LaTeX Syntax-Hervorhebung und den eingebetteten SAS „Code Brocken“ mit SAS Syntax-Hervorhebung anzuzeigen. (Die „Code Brocken“ sind real (in Betrieb) Code, nicht nur für die Anzeige, so dass ich glaube nicht, das LaTeX listings-Paket funktioniert.) Ich bin sicher, es muss ein Weg, dies zu tun mit Emacs, aber ich don ‚t wissen, was es ist ... an dieser Stelle ich mit einem beliebigen Editor für jede Lösung offen bin.

5. Februar 2010 Update: habe ich beschlossen, dass der beste Ansatz war eigentlich mit Ich bin glücklich, zu stoppen versuchen StatWeave und SAS, und stattdessen verwenden zu lernen Sweave und R. verwenden die Sweave Hervorhebung in Vim, aber ich weiß, andere Menschen, die mit ESS sehr glücklich sind, so werde ich voran gehen und akzeptieren diese Antwort so können wir diese Frage schließen.

War es hilfreich?

Lösung

Vielleicht ist eine der Lösungen auf dem MultipleModes Seite auf dem Emacs Wiki hilft. Auch das Handbuch für Sweave sagt, dass

Andere Tipps

Wäre es eine Option sein, nicht die sas zu haben Dateien direkt im Code, sondern verwenden ‚\ input‘ stattdessen? Eine Sache, die ich häufig mit Source-Beispiele tun ist, steckt sie in einem Unterverzeichnis sample / und verwenden Sie dann „Highlight“ in LaTeX-Dateien zu erstellen, die in der Hauptdatei aufgenommen werden können. Auf diese Weise kann ich die Quelldateien jedes Mal ausführen sie geändert werden zu überprüfen, ob sie korrekt funktionieren. Die (Re-) Generation des tex-Code kann von einem Shell-Skript oder von Make erfolgen, wenn es sich um ein größeres Projekt ist. In den meisten Fällen ein einfaches generate_tex.sh Skript war genug für meine Projekte, die ich rief, nachdem ich alle meine Proben verändert hatte. Der Inhalt könnte es so etwas wie

sein
#!/bin/bash
highlight -L -f --wrap-simple *.css --outdir ../input/
highlight -L -f --wrap-simple *.html --outdir ../input/
highlight -L -f --wrap-simple *.php --outdir ../input/

für ein Web-Projekt. In der Haupt-tex-Datei dann sind die Proben mit

\input{filename.css}

UltaEdit funktionieren könnte, aber Sie würden viel Setup zu tun haben

Wenn Sie xemacs verwenden, können Sie mmmmode zu Syntax Highlight verwenden. Ich benutze ESS mit statweave so wie die erste Person Antwort, warum Sie ESS nicht Highlight sybntax verwenden und statweave die Arbeit zu tun. Ich jedoch verwenden SAS nicht aber habe Stata und R in der gleichen Datei und sie arbeiten beide mit ihrer eigenen Syntax-Hervorhebung verwendet.  (Erfordern ‚MMM-Modus) (Erfordern ‚MMM-Vars)  (Setq mmm-global-Modus ‚vielleicht) (Setq mmm-Submodus-Dekoration-Ebene 1)

(mmm-Add-Gruppe   ‚Latex-Statistiken   ‚((R-tag      : Submodus r-mode      : Gesicht mmm-Code-Submodus-face      : Begrenzer-Modus nil      : Front "begin {RCode}"      : Back "end {RCode}"      : Back-Offset (rückwärts char -1)      einfügen ((R R-Tag Null @ "\ begin {RCode}":?     @ "\ N" _ "\ n" @ "\ end {Rcode}" @))      )     (Sta-tag      : Submode STA-Modus      : Gesicht mmm-Code-Submodus-face      : Begrenzer-Modus nil      : Front "begin {Statacode}"      : Back "end {Statacode}"      : Back-Offset (rückwärts char -1)      : Einfügen ((S STATA-Tag Null @ "\ begin {Statacode}"     @ "\ N" _ "\ n" @ "\ end {Statacode}" @))      )))

(Add-to-Liste ‚mmm-mode-ext-Klassen-alist        ‚(Null "-swv.tex" Latex-Statistik))

Sie müssen nur SAS-Modus wechseln (ich glaube, wenn es das ist, was es heißt) und ich habe in meiner latex.el Datei (geladen mit einem Lambda im init.el) folgenden (Local-Set-Taste  [   (Kontrolle f1)]
 ‚(Lambda ()     (Interaktiv)     (If (String-match "\ .tex" Puffer-file-name)  (progn     (Let (Datei-Name Datei-name1 dateiname-wihoutswv)       (Setq Dateiname (buffer-file-name))       (Setq Datei-name1 (dateiname-nondirectory Dateiname))       (Setq dateiname-wihoutswv (replace-regexp-in-string "-swv" ""       Datei-name1))       (Setq dateiname-wihoutswv (replace-regexp-in-String "\ .tex" ""       dateiname-wihoutswv))       (If (String-match "-swv \ .tex" Puffer-file-name)    (Find-file-other-Fenster (concat dateiname-wihoutswv ".tex"))  (Find-file-other-Fenster (concat dateiname-wihoutswv "-swv.tex"))  )       )     )       (Meldung „Sie sind in Latex-Modus und das ist weder swv noch TeX-Datei. Nicht entsprechenden tex oder Sweave Datei öffnen können“)  )))

und

(global-set-Taste [F1]
  ‚(Lambda ()      (Interaktiv)      (Save-Puffer)      (If (String-match "-swv \ .tex" Puffer-file-name)   (progn     (Interaktiv)     (Latex-Modus)     ;; (font-lock-fontify-Puffer)     (Balance-Fenster)     (Mylatex-löschen-indent)     (Save-Puffer)     (Save-window-Exkursion (Laufstrom-statweave-Datei)) ; (Mylatex-clean)     )        (If (String-match "\ .tex" Puffer-file-name)     (progn       (Interaktiv)       (Latex-Modus)       ; (Font-lock-fontify-Puffer)       (Balance-Fenster)       (Do-pdf)  ; (Mylatex-clean)       )   (Meldung: „Das ist auch nicht TeX noch SWV-Datei, und ich weiß nicht, was andere zu tun, als den Puffer in die Datei zu speichern. Also habe ich“)   ))      )

)

(defun Laufstrom-statweave-Datei ()   „Execute statweave auf einer -swv.tex-Datei und starten Sie evince Ausgabe anzuzeigen“   (Interaktiv)   (Let (Datei-Name Datei-name1 dateiname-wihoutswv cmd1-str cmd2-str Status)   (Setq Dateiname (buffer-file-name))   (Setq Datei-name1 (dateiname-nondirectory Dateiname))   (Setq dateiname-wihoutswv (replace-regexp-in-string "-swv \ .tex" ".pdf" Datei-name1)) ;; (Setq cmd1-str (concat "statweave" Datei-name1 "&& evince" file-name-wihoutswv "&"))   (Setq cmd1-str (concat "statweave" Datei-name1))   (Setq cmd2-str (concat "evince" file-name-wihoutswv "&")) ;; (Shell-Befehl CMD1-str)   (Setq Ausgabe-Puffer " swvoutput ")   (Save-window-Exkursion (setq Status (Shell-Befehl CMD1-str output-Puffer)))   ;; (Nachrichtenstatus) ;; (Let (Status) ((Shell-Befehl CMD1-str output-Puffer))))) ))

Es sieht schrecklich und ich bin kein Experte Lisp so bin ich sicher, dass es viele Ineffizienzen hat, aber es funktioniert.

jean Antwort auf dicuss: Das Problem, das ich habe immer mit ESS habe, ist das nicht genug Funktionalität unter Windows unterstützt (wo ich laufe SAS).

Folglich Statweave hat nicht sinnvoll gewesen, überhaupt zu mir.

In diesen Tagen gibt es eine SAS Linux-Version, so stelle ich mir vor, dass besser funktionieren könnte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top