#+title: GNU Emacs III: Referencias bibliográficas y presentaciones
#+author: dlmayhem
#+email: dlmayhem@riseup.net
#+date: 2023-12-12
#+language: es
#+options: num:nil toc:nil ':t
#+bibliography: ~/Documentos/refs.bib
* Materiales
- Material del curso :: https://notabug.org/dlmayhem/emacs-hss.git
- Mi config personal :: https://notabug.org/dlmayhem/terror-emacs.git
* Contenidos
- Repaso de la sintáxis de Org
- Manejo de referencias bibliográficas
- Presentaciones
* Repaso
** Listas
*** Listas con ~-~
- Esto es un ítem.
- Esto es otro ítem.
- Cada ítem se genera con =M-ret=.
*** Listas con ~+~
+ Esto es un ítem.
+ Esto es otro ítem.
+ Cada ítem se genera con =M-ret=.
*** Listas ordenadas con ~.~
1. Esto es un ítem numerado.
2. Esto también.
3. Cada ítem se genera con =M-ret=.
*** Listas ordenadas con ~)~
1) Esto es un ítem numerado.
2) Esto también.
3) Cada ítem se genera con =M-ret=.
*** Definiciones
- Def1 :: Blablabla blabla bla.
- Def2 :: Blablabla blabla bla.
- Def3 :: Blablabla blabla bla.
** Formato de texto
- *negrita* - El texto entre * aparece resaltado.
- /cursiva/ - El texto entre / aparece enfatizado.
- _subrayado_ - El texto entre _ aparece subrayado.
- +tachado+ - El texto entre + aparece tachado.
- =código= - El texto entre = aparece como código.
- ~verbatim~ - El texto entre ~ es similar al anterior.
** Notas al pie
- Las notas a pie de página se insertan con el comando C-c C-x f.
** Entornos
- Con =C-c C-,= (=org-insert-structure-template=) se abre un buffer con los entornos disponibles.
- Algunos entornos comunes son:
- c :: center
- q :: quote
- s :: source
- v :: verse
** Tablas
- El modo Org soporta la creación de tablas, y permite cálculos matemáticos.
- Para crear una tabla se debe comenzar con el caracter "|".
- Ejemplo de tabla:
| Nombre | Teléfono | Rut |
|---------+----------+--------------|
| Ozzy | 666666 | 12.345.678-9 |
| Ronnie | 999999 | 98.765.432-1 |
- Al presionar TAB la tabla se alínea de forma automática.
- El separador horizontal se comienza con |- y luego se presiona TAB.
- Se pueden mover columnas hacia la izquierda o la derecha con M-der/izq.
- Se pueden mover filas hacia arriba o abajo con M-arriba/abajo.
** Enlaces
- Los enlaces en el modo Org llevan la siguiente sintáxis [[][]], colocando primero la URL y luego la descripción.
- Para editar el enlace se utiliza el comando C-c C-l sobre el link: [[http://gnu.org][Proyecto GNU]].
- Para dirigirse al lugar enlazado hay que posicionarse sobre el enlace y utilizar el comando C-c C-o.
- Se puede insertar un enlace automáticamente con el comando C-c C-l.
** Código fuente
- Los lenguajes disponibles se pueden revisar [[https://orgmode.org/worg/org-contrib/babel/languages/index.html][acá]].
#+begin_src python :results output
x = 222
y = 3
z = (x * y)
print(z)
#+end_src
** Listas TODO y checkboxes
DEADLINE: <2020-07-31 vie> SCHEDULED: <2020-07-09 jue>
- [ ] =S-izq/der= cambia el estado de la sección.
- [X] =C-c C-c= cambia el estado del checkbox.
- [ ] =C-c C-s= establece una fecha de inicio.
- [X] =C-c C-d= establece una fecha de término.
- [ ] Mostrar ejemplo
- [ ] Ejemplo
* Configuración básica
#+begin_src elisp
(use-package org
:commands (org-capture org-agenda)
:bind (("C-c l" . org-store-link)
("C-c a" . org-agenda)
("C-c c" . org-capture))
:config
(setq org-agenda-files '("~/.emacs.d/agenda.org")
org-ellipsis " ▾"
org-footnote-auto-adjust t
org-return-follows-link t
org-log-done 'time
org-capture-bookmark nil
org-html-validation-link nil
org-startup-indented t
org-startup-folded nil))
#+end_src
* Org Babel
#+begin_src elisp
(with-eval-after-load 'org
(org-babel-do-load-languages
'org-babel-load-languages
'((C . t)
(scheme . t)
(python . t)
(shell . t)))
(add-hook 'org-babel-after-execute-hook 'org-redisplay-inline-images))
#+end_src
* Manejo de referencias bibliográficas
** Citar
#+begin_src elisp
(use-package citar
:defer t
:bind (("C-c b" . citar-insert-citation)
("M-p" . citar-org-update-prefix-suffix)
:map minibuffer-local-map
("M-b" . citar-insert-preset))
:custom
(citar-bibliography '("~/referencias.bib"))
:hook
(LaTeX-mode . citar-capf-setup)
(org-mode . citar-capf-setup))
#+end_src
** Archivo =.bib=
- Para trabajar con Citar necesitamos una base de datos bibliográfica en formato =.bib=.
- En este ejemplo utilizaremos un archivo ubicado en nuestro directorio personal, es decir =~/referencias.bib=, pero puede ser cualquier otra que se declare en la configuración.
*** Libro
#+begin_src bibtex
@book{agustin-confesiones,
title = {Confesiones},
author = {San Agustín},
year = 1974,
publisher = {BAC},
location = {Madrid}
}
#+end_src
*** Artículo
#+begin_src bibtex
@article{cornford-math-dialectic-i,
author = {Cornford, Francis Macdonald},
journal = {Mind},
number = {161},
pages = {37-52},
publisher = {[Oxford University Press, Mind Association]},
title = {Mathematics and Dialectic in the Republic VI.-VII. (I.)},
volume = {41},
year = {1932}
}
#+end_src
*** Referencia a un artículo web
#+begin_src bibtex
@InCollection{sep-principia-mathematica,
author = {Linsky, Bernard and Irvine, Andrew David},
title = {{Principia Mathematica}},
booktitle = {The {Stanford} Encyclopedia of Philosophy},
editor = {Edward N. Zalta},
howpublished = {\url{https://plato.stanford.edu/archives/spr2022/entries/principia-mathematica/}},
year = {2022},
edition = {{S}pring 2022},
publisher = {Metaphysics Research Lab, Stanford University}
}
#+end_src
** Uso de =citar=
- Para utilizar =citar= debemos presionar el atajo =C-c b= (=citar-insert-citation=), lo que nos mostrará una lista con nuestras referencias bibliográficas utilizando =vertico=. [cite:
@frege-logica]
- Seleccionamos el elemento requerido y se agregará la referencia. [cite:
@clarke-descartes]
- Para que la bibliografía sea presentada correctamente al momento de exportar, debemos agregar la siguiente línea al final del documento, o en el lugar que consideremos necesario:
#+begin_src
#+print_bibliography:
#+end_src
** Procesador de citas
- En el "preámbulo" de nuestro documento =.org= establecemos el procesador que queremos utilizar. En este ejemplo, usaremos =biblatex=:
#+begin_src
#+cite_export: biblatex
#+end_src
- Otros procesadores pueden ser =basic=, =csl= y =natbib=.
* Presentaciones con y en Emacs
** Beamer
#+begin_src org
#+cite_export: biblatex
#+latex_compiler: xelatex
#+latex_header: \usepackage[${1:lang}]{babel}
#+latex_header: \usepackage{unicode-math}
#+latex_header: \setmainfont{Linux Libertine O}
#+latex_header: \beamertemplatenavigationsymbolsempty
#+latex_header: \setbeamertemplate{frametitle continuation}{}
#+end_src
** =org-tree-slide=
#+begin_src elisp
(use-package org-bullets
:no-require t
:custom
(org-bullets-bullet-list '("◉" "●" "○" "●" "○" "●")))
(use-package hide-lines)
(use-package hide-mode-line
:defer t)
(defun terror/slide-setup ()
(global-hl-line-mode -1)
(setq org-hide-emphasis-markers t)
(org-bullets-mode 1)
(setq text-scale-mode-amount 3)
(text-scale-mode 1)
(set-frame-parameter (selected-frame)
'internal-border-width 75)
(org-display-inline-images)
(toggle-frame-fullscreen)
(hide-mode-line-mode 1)
(hide-lines-matching "#\\+begin")
(hide-lines-matching "#\\+end"))
(defun terror/slide-end ()
(global-hl-line-mode 1)
(setq org-hide-emphasis-markers nil)
(org-bullets-mode -1)
(setq text-scale-mode-amount 0)
(text-scale-mode -1)
(set-frame-parameter (selected-frame)
'internal-border-width 20)
(toggle-frame-fullscreen)
(hide-mode-line-mode -1)
(hide-lines-show-all)
(org-fold-show-all))
(use-package org-tree-slide
:after org
:bind ("C-c p" . org-tree-slide-mode)
:hook ((org-tree-slide-play . terror/slide-setup)
(org-tree-slide-stop . terror/slide-end))
:config
(setq org-tree-slide-slide-in-effect nil
org-image-actual-width nil
org-tree-slide-header t
org-tree-slide-breadcrumbs " > "
org-tree-slide-activate-message "Let's begin..."
org-tree-slide-deactivate-message "The end :)"))
#+end_src
* Recursos
** Lectura recomendada
- Referencias bibliográficas ::
- [[https://amerygration.com/Blog/citation_handling_in_emacs.html][Amery Gration: Citation handling in Emacs]]
- [[https://blog.tecosaur.com/tmio/2021-07-31-citations.html][This Month in Org: Introducing citations!]]
- Presentaciones ::
- [[https://orgmode.org/worg/exporters/beamer/tutorial.html][Worg: Writing Beamer presentations in org-mode]]
- [[https://orgmode.org/manual/Beamer-Export.html][The Org Manual: Beamer export]]
* Paquetes utilizados
- [[https://github.com/emacs-citar/citar][Citar]]
- [[https://github.com/takaxp/org-tree-slide][org-tree-slide]]
- [[https://github.com/sabof/org-bullets][Org Bullets]]
- [[https://github.com/vapniks/hide-lines][hide-lines]]
- [[https://github.com/hlissner/emacs-hide-mode-line][hide-mode-line]]
* Próxima clase
- Org Capture
- Org Roam
- Plantillas de Org Roam
*¡Gracias por asistir!*
* Referencias
#+print_bibliography: