usar titulos subtitulos programa plantilla maketitle ejemplo documento descargar como comandos latex editor syntax-highlighting sas

titulos - Resaltado de sintaxis para mĂșltiples idiomas en el mismo archivo: StatWeave/SAS/LaTeX



plantilla latex documento (6)

Estoy usando StatWeave para ejecutar código SAS desde archivos LaTeX. Me gustaría poder abrir un archivo en un editor de texto y ver el documento principal LaTeX con resaltado de sintaxis LaTeX y los "fragmentos de código" SAS incorporados con resaltado de sintaxis SAS. (Los "fragmentos de código" son códigos reales (de trabajo), no solo para mostrarlos, por lo que no creo que el paquete de listados LaTeX funcione.) Estoy seguro de que debe haber una forma de hacerlo con emacs, pero no No sé qué es ... En este punto, estoy abierto a cualquier solución con cualquier editor.

Actualización del 5 de febrero de 2010: decidí que el mejor enfoque era dejar de intentar usar StatWeave y SAS, y en su lugar aprender a usar Sweave y R. Estoy contento con el hecho de que Sweave destaca en Vim, pero conozco a otras personas que están muy contento con ESS, entonces voy a seguir adelante y acepto esa respuesta para poder cerrar esta pregunta.


Tal vez una de las soluciones en la página MultipleModes en Emacs Wiki ayude. Además, el manual de Sweave dice que las estadísticas de Emacs Speaks pueden manejar archivos Sweave, por lo que, dado que StatWeave parece ser similar, quizás podría hackear ESS para manejar esos archivos también. Parece que ESS ya tiene soporte para SAS, por lo que los cambios requeridos podrían no ser demasiado grandes.


¿Sería una opción no tener los archivos sas directamente en el código sino usar ''/ input'' en su lugar? Una cosa que hago frecuentemente con los ejemplos de fuentes es ponerlos en un subdirectorio samples / y luego usar "highlight" para crear archivos LaTeX que se pueden incluir en el archivo principal. De esa forma puedo ejecutar los archivos fuente cada vez que se cambian para verificar si funcionan correctamente. La (re) generación del código de tex se puede hacer mediante un script de shell o make si se trata de un proyecto más grande. En la mayoría de los casos, un simple script generate_tex.sh era suficiente para mis proyectos a los que llamé después de haber cambiado cualquiera de mis muestras. El contenido podría ser algo así como

#!/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/

para un proyecto web. En el archivo tex principal, incluya las muestras usando

/input{filename.css}


UltaEdit podría funcionar, pero tendría que hacer una gran cantidad de configuración


Si está utilizando xemacs, puede usar mmmmode para resaltar la sintaxis. Utilizo ESS con statweave para que la primera persona responda por qué no usa ESS para resaltar sybntax y usa statweave para hacer el trabajo. Sin embargo, no uso SAS pero he usado stata y R en el mismo archivo y ambos trabajan con su propio resaltado de sintaxis. (requiere ''mmm-mode) (requiere'' mmm-vars) (setq mmm-global-mode ''quizás) (setq mmm-submode-decoration-level 1)

(mmm-add-group ''latex-stats'' ((r-tag: submode r-mode: cara mmm-code-submode-face: delimiter-mode nil: front "begin {Rcode}": back "end {Rcode} ": back-offset (backward-char -1): insert ((? R R-tag nil @" / begin {Rcode} "@" / n "_" / n "@" / end {Rcode} "@) )) (sta-tag: submode STA-mode: face mmm-code-submode-face: delimiter-mode nil: front "begin {Statacode}": back "end {Statacode}": back-offset (backward-char - 1): insertar ((? S STATA-tag nil @ "/ begin {Statacode}" @ "/ n" _ "/ n" @ "/ end {Statacode}" @)))))

(agregar a la lista ''mmm-mode-ext-classes-alist'' (nil "-swv.tex" latex-stats))

Solo necesita cambiar al modo SAS (creo que si así se llama) y tengo en mi archivo latex.el (cargado con una lambda en el init.el) lo siguiente (local-set-key [( control f1)]
''(lambda () (interactivo) (if (string-match "/ .tex" buffer-file-name) (progn (let (nombre de archivo file-name1 file-name-wihoutswv) (setq file-name (buffer- file-name)) (setq file-name1 (file-name-nonirectory file-name)) (setq file-name-wihoutswv (replace-regexp-in-string "-swv" "" file-name1)) (archivo setq -name-wihoutswv (replace-regexp-in-string "/ .tex" "" file-name-wihoutswv)) (if (string-match "-swv / .tex" buffer-file-name) (find-file- other-window (concat nombre-archivo-wihoutswv ".tex")) (find-file-other-window (concat nombre-de-archivo-wihoutswv "-swv.tex"))))) (mensaje "Usted está en látex- modo y esto no es swv ni archivo TeX. No se puede abrir el archivo tex o sweave correspondiente "))))

y

(global-set-key [f1]
''(lambda () (interactivo) (save-buffer) (if (string-match "-swv / .tex" buffer-file-name) (progn (interactivo) (latex-mode) ;; (font-lock-fontify) -buffer) (balance-windows) (mylatex-delete-indent) (save-buffer) (save-window-excursion (run-current-statweave-file)); (mylatex-clean)) (if (string-match ") / .tex "buffer-file-name" (progn (interactivo) (latex-mode); (font-lock-fontify-buffer) (balance-windows) (do-pdf); (mylatex-clean)) (mensaje " esto no es un archivo TeX ni un archivo SWV y no sé qué hacer aparte de guardar el búfer en el archivo. Así que lo hice "))))

)

(defun run-current-statweave-file () "Ejecute statweave en un archivo -swv.tex y ejecute evince para ver el resultado" (interactivo) (let (file-name file-name1 file-name-wihoutswv cmd1-str cmd2- estado str) (setq file-name (buffer-file-name)) (setq file-name1 (file-name-nonirectory file-name)) (setq file-name-wihoutswv (replace-regexp-in-string "-swv / .tex "" .pdf "nombre-archivo1)) ;; (setq cmd1-str (concat" statweave "nombre-archivo1" && evince "nombre-de-archivo-wihoutswv" & ")) (setq cmd1-str (concat) statweave "nombre-de-archivo1)) (setq cmd2-str (concat" evince "nombre-de-archivo-wihoutswv" & ")) ;; (shell-command cmd1-str) (setq output-buffer" swvoutput ") (save-window -excursión (estado setq (shell-command cmd1-str output-buffer))) ;; (estado del mensaje) ;; (let (estado) ((shell-command cmd1-str output-buffer)))))))

Se ve horrible y no soy un experto en lisp, así que estoy seguro de que tiene muchas ineficiencias, pero funciona.


Discutir la respuesta de jean: El problema que siempre he tenido con ESS es que no se admite suficiente funcionalidad en Windows (donde ejecuto SAS).

En consecuencia, Statweave no me ha sido útil en absoluto.

En estos días hay una versión de SAS Linux, así que imagino que podría funcionar mejor.


Puede probar la nueva clase StatReport LateX, que funciona un poco como Sweave, pero se implementa por completo en LaTeX.

Flujo de trabajo: Ejecutar una vez y obtener el código SAS, ejecutar ese código en SAS, ejecutar laTeX de nuevo y obtener la salida incluida.

Creo que colorea el código (usando la clase SASnRdisplay) si no recuerdo mal.

Vea un documento aquí: http://support.sas.com/resources/papers/proceedings12/324-2012.pdf Y CTAN para la documentación del paquete http://mirror.switch.ch/ftp/mirror/tex/macros/ latex / contrib / statrep / statrep.pdf