2 de mayo de 2023

Org-Mode: Exportación a LaTeX con resaltado de sinaxis para código fuente.

Para exportar desde Org a LaTeX con resaltado de sintaxis para código fuente, se puede utilizar el paquete minted, el cual es parte de la distribución "Tex Live". Para ello se pueden seguir los siguientes pasos.

1.1. Instalar dependencias y paquetes.

En distribuciones basadas en Debian se instalan los siguientes paquetes:

  • python3-pygments
  • texlive-latex-extra

1.2. Configurar parámetros de Org-LaTeX

  1. Usar minted para listados:

    (setq org-latex-listings 'minted)
    
  2. Incluír minted en la lista de paquetes por defecto:

    (setq org-latex-packages-alist '(("" "minted")))
    
  3. Cambiar opciones de compilación para compatibilidad con minted:

    (setq org-latex-pdf-process
          '("pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f"
            "pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f"))
    
  4. Opcionalmente se puede activar el plegado de líneas de código para evitar truncamiento de aquellas que sean demasiado largas para el ancho de página.

    (setq org-latex-minted-options '(("breaklines" "true")
                                     ("breakanywhere" "true")))
    

1.3. Ejemplo

Considerando y aplicando todo lo anterior, se puede generar la siguiente configuración:

;; Exportación de Org a LaTeX con resaltado de sinaxis.
(setq org-latex-listings 'minted  ;Usar Minted p/listados
      org-latex-packages-alist '(("" "minted"))
      ;; Activa plegado de líneas
      org-latex-minted-options '(("breaklines" "true")
                                 ("breakanywhere" "true"))
      ;; Ajusta opciones de compilación
      org-latex-pdf-process
      '("pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f"
        "pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f"))

Autor: Alcides Flores Pineda

Created: 2023-05-02 mar 14:06

Validate