Ajuste del calendario y la visualización de documentos en emacs.
Estos días me han preguntado cómo hacía para abrir los documentos que genero desde emacs y por qué a mí en el calendario me aparecen los meses y los días es español y a mi interlocutor no. Aunque son dos temas distintos los meto en el mismo artículo y añado otra respuesta que fue juzgada como menos urgente o importante, porque no dan una extensión que necesite el espacio de dos posts.
Visualizador de documentos
Básicamente exporto desde emacs a dos tipos de documentos pdf y
html. Para hacerlo tengo el siguiente código en mi init.el
dentro
del apartado custom-set-variables
:
'(TeX-view-program-selection (quote (((output-dvi has-no-display-manager) "dvi2tty") ((output-dvi style-pstricks) "dvips and gv") (output-dvi "xdvi") (output-pdf "Zathura") (output-html "xdg-open"))))
Quiero destacar únicamente el uso de Zathura como visualizador de
los documentos pdf. Ese software es muy liviano y aporta además el
matiz de que detecta cuándo hemos modificado el documento para
visualizar los cambios automáticamente. Por ejemplo, encuentro un
error en el documento y me doy cuenta al visualizarlo en pdf. Sin
cerrar la visualización voy al fichero LaTeX, guardo el cambio
corregido C-x C-s
y genero el nuevo pdf C-c C-c
. Al modificarse
el fichero, Zathura lo recargará y visualizará la última versión ya
corregida.
Ajustes del calendario
Los ajustes en el calendario también tienen que ver con el apartado de
custom-set-variables
, concretamente las siguientes:
'(calendar-date-style (quote iso)) '(calendar-day-header-array ["Do" "Lu" "Ma" "Mi" "Ju" "Vi" "Sa"]) '(calendar-day-name-array ["domingo" "lunes" "martes" "miércoles" "jueves" "viernes" "sábado"]) '(calendar-month-abbrev-array ["Ene" "Feb" "Mar" "Abr" "May" "Jun" "Jul" "Ago" "Sep" "Oct" "Nov" "Dic"]) '(calendar-month-name-array ["enero" "febrero" "marzo" "abril" "mayo" "junio" "julio" "agosto" "septiembre" "octubre" "noviembre" "diciembre"]) '(calendar-week-start-day 1)
La variable calendar-date-style
está ajustada para mostrar las
fechas según el modo ISO
, es decir, en el formato año/mes/día
, tal
que por ejemplo, el día de hoy será 2018/10/29
. Eso permite un
ordenamiento de las fechas automático en formato texto y una vez te
acostumbras es tan sencillo como ordenarlas al inverso.
La variable calendar-day-header-array
muestra los nombres del día de
la semana que se muestran en las cabeceras del buffer calendario,
donde sólo caben dos caracteres. Sin embargo, cuando emacs necesite el
nombre completo del día utilizará los nombres guardados en
calendar-day-name-array
. De igual modo, el nombre abreviado de los
meses se guardan en la variable calendar-month-abbrev-array
y los
nombres largos en calendar-month-name-array
.
La última variable es para que las semanas comiencen en lunes (día 1) en lugar de en domingo (día 0).
Avisos de la agenda para que recuerde cumpleaños y efemérides
Otro de los aspectos que me han preguntado es cómo hacer para que la
agenda recuerde las fechas de cumpleaños o las efemérides que desees
recordar. En el fichero init.el
debes configurar un fichero
diario también en el apartado custom-set-variables
:
'(org-agenda-diary-file "ruta/al/fichero/diario.org")
Como se ve, puedes configurar el nombre y la ruta que se quiera (siempre que emacs lo encuentre). ¿Qué hay que meter dentro de ese archivo para que haga los recordatorios? Muy fácil:
%%(org-anniversary 2018 10 29) Este post cumple %d años de su publicación.
Se observa el comando org-anniversary
con tres parámetros el año
,
el mes
y el día
y una cadena a continuación con el texto que
queramos y en el que se puede incluir %d
para que org-mode
lo
sustituya por el número de años. El próximo año, en la agenda me
aparecerá una reseña diciéndome que este artículo se publicó hace un
año, por ejemplo.
Conclusión
Son detalles que muchos usuarios ya conocen y que pongo aquí porque quien me preguntó es un nuevo usuario de emacs. De todas formas, al resto de usuarios, también les puede servir de repaso.