Agenda ala Emacs
BSD
A ver web-ones, si en Emacs presionas:
M-x calendar
una pequeña aplicación de una agenda aparecerá.
Si dentro de esa agenda presionas las teclas:
t d
obtendrás la versión LaTeX del día en que te encuentres el cual guardándola con las teclas:
C-x C-s
en un archivo (por ejemplo hoy.tex) y tecleando en cualquier terminal:
latex hoy.tex
obtendrás la versión DVI del día específico.
Todo un año
- Primero definimos un registro (
q) con su valor inicial (Let's create and define a register value (q)):
C-u 1 C-x r n q
- Luego abrimos el calendario (Let's start the Calendar):
M-x calendar
- Comenzamos a grabar (Let's start to record):
C-x (
- Ahora generamos la versión LaTeX del día específico (Let's get the LaTeX vertion of the current day):
t d # Para el dia (to get the current day)
t w 1 # Para la semana actual (to get the current week)
t M # Para el mes (to get the current month)
- Guardamos el archivo (Let's save the file):
C-x C-s [day|week|month]
- Insertamos el valor del registro (Let's insert the register value):
C-x r i q
- Presionamos la tecla
Finy agregamos la extensión (Press theEndkey and write the file extension):
.tex
- Incrementamos el valor del registro en 1 (Increment register value):
C-x r + q
- Regresamos al búfer del calendario (Let's switch to the Calendar buffer):
C-x 
- Nos movemos: (Let's move on):
# El siguiente dia (next day)
# La semana siguiente (next week)
M-} # El mes siguiente (next month)
- Dejamos de grabar (Stop recording):
C-x )
¡Y listo! (That's all!)
- Ahora repetimos el macro unas 365 veces (los dias enteros del año), o 52 veces (las semanas) o 12 veces (los meses): Now let's repeat the macro about 365 times (a entire year), 52 times (all the weeks) or 12 times (the months):
C-u [365|52|12] C-x e
Guardando el macro
- Nombramos el macro:
M-x kmacro-name-last-macro
<macro_name>
- Creamos un archivo nuevo:
C-x new_file_name
- Insertamos el contenido del macro guardado:
M-x insert-kbd-macro
<macro_name>
- Guardamos los cambios:
C-x C-s
Restableciéndolos
He aquí los tres macros:
(fset 'dias
(lambda (&optional arg) "Keyboard macro." (interactive "p") (kmacro-exec-ring-item (quote ([116 100 24 19 100 97 121 24 114 105 113 end 46 116 101 120 return 24 114 43 113 24 right right] 0 "%d")) arg)))
(fset 'semanas
(lambda (&optional arg) "Keyboard macro." (interactive "p") (kmacro-exec-ring-item (quote ([116 119 49 24 19 119 101 101 107 24 114 105 113 end 46 116 101 120 return 24 114 43 113 24 right down] 0 "%d")) arg)))
(fset 'meses
(lambda (&optional arg) "Keyboard macro." (interactive "p") (kmacro-exec-ring-item (quote ([116 77 24 19 109 111 110 116 104 24 114 105 113 end 46 116 101 120 return 24 114 43 113 24 right escape 125] 0 "%d")) arg)))
Los guardamos en el archivo:
~/.emacs
Para volverlas a usar:
Quien sabe....
Formato PDF
Corregimos el problema del margen izquierdo:
[$] cat > fix_margins.sh
#!/bin/ksh
for file in $( ls *.tex | sort ); do
echo "Fixing margin file $file"
ex - $file << EOS
/oddsidemargin/s/-2/0/p
wq
EOS
done
Ctrl+D
[$] ksh ./fix_margins.sh
Listo
Para renderear los archivos LaTeX a DVI:
[$] find . -name '*.tex' -exec latex {} \;
Para convertilos en PostScript:
[$] find . -name '*.dvi' -exec dvips -o {}.ps -t letter {} \;
Para convertirlos en PDF:
[$] find . -name '*.ps' -exec ps2pdf {} \;
Para nombrarlos de forma ordenada:
Por ejemplo, los archivos day1.dvi.pdf en day001.pdf:
[$] i=1; for file in $( ls day?.dvi.pdf | sort ); do new_name=$( basename $file $i.dvi.pdf )"00$i.pdf"; echo "Moving file $file into $new_name"; mv $file $new_name; (( i++ )); done
Los archivos day10.dvi.pdf en day010.pdf:
[$] i=10; for file in $( ls day??.dvi.pdf | sort ); do new_name=$( basename $file $i.dvi.pdf )"0$i.pdf"; echo "Moving file $file into $new_name"; mv $file $new_name; (( i++ )); done
Los archivos day100.dvi.pdf en day100.pdf:
[$] i=100; for file in $( ls day???.dvi.pdf | sort ); do new_name=$( basename $file $i.dvi.pdf )"$i.pdf"; echo "Renaming file $file into $new_name"; mv $file $new_name; (( i++ )); done
Para crear un solo PDF (concatenarlos):
[$] gs -q -sPAPERSIZE=letter -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=agenda.pdf *.pdf
GS> Ctrl+D
Limpiando el proceso
Eliminamos los archivos innecesarios:
[$] rm *.aux *.log *.dvi *.ps
Listo
Permalink: http://mononeurona.org/entries/view/asarch/2074
Comentblogs:umm, no me he enterado de nada, tal vez una captura?, jejeje. Saludos
2010-02-04 00:02:40-06
Mejor hazlo para que veas a lo que me refiero (de preferencia en un directorio ~/test para que despues lo puedas borrar sin problemas).
2010-02-04 11:28:00-06
Son muchos megas entre emacs y latex, ummm, esta bien, lo he hecho pero de cualquier forma solo he podido crear el "calendario" del primer ejemplo.
Anda no seas mala leche, sube una captura o mejor el pdf completo O:), muahahaha
2010-02-04 12:06:38-06
Chale este post me recuerda que eh dejado mi proyecto de latex varado.
Ya me estan dando ganas de probar emacs lo menciona tanto el aarkerio y ahora el asarch que haber si me animo.
2010-02-04 13:57:31-06
Orale asarch, chido, al rato en un ratito de tiempo lo voy a intentar, chido, gracias.
2010-02-04 20:34:05-06
* NOTA *
Una vez que hayan descargado este archivo:
http://mononeurona.org/files/userfiles/asarch_160.gz
lo pueden descomprimir con:
tar vxzf asarch_160.gz
o renombrarlo a:
asarch_160.tar.gz
para que puedan abrir su contenido.
2010-02-05 08:36:14-06
genial asarch, esta bien, el de meses igual y hasta lo imprimo, jejeje, claro dire que lo hice con emacs >:^)., No en serio debe existir alguna forma de crear algo parecido en vim...buscando
2010-02-05 11:30:09-06
Solamente que aprendas el lenguaje TeX y luego el LaTeX y que lo agregues con el lenguaje de programacion de Vim.
2010-02-06 22:05:51-06










