En el proceso de preparación del informe en GolangConf'2019, utilicé LaTeX. A pesar de algunas cosas obsoletas, un comportamiento poco inusual, documentación escasa o compleja, de repente lo disfruté. No me convertí en un "gurú" de LaTeX, pero pude hacer diapositivas bastante buenas. Y quiero describir los puntos principales de la creación de una presentación moderna en LaTeX. Esto debería ir especialmente a los especialistas de TI que programan por ocupación. Programar su presentación es divertido.

Por qué LaTeX:
- Superposiciones flexibles (cuando la información en una diapositiva aparece a su vez)
- Repetibilidad y singularidad
- Escribimos como un programa. Algunos recursos se pueden almacenar en archivos separados: código, lista de enlaces
Por qué NO LaTeX:
- Solo salida PDF
- Ajustar las tablas y columnas, si las hay, puede llevar más tiempo que mover el mouse. No es necesario hacer una presentación en cinco diapositivas complejas en LaTeX. Y en 55 - es necesario
Comencemos con la instalación.
En la práctica, ahora hay una distribución líder de servicios LaTeX / TeX que ha absorbido todo el resto: TexLive. Los problemas están numerados por año. No ponga versiones arqueológicas anteriores a 2018. Entonces, casi todos los usuarios de Ubuntu están aquí . Hay un conjunto separado para los controladores de amapola. O puede usar el instalador universal, incluso para Windows .
Los usuarios de CentOS deben sufrir.
En cualquier caso, puede crear su propio Dockerfile y usarlo. Pero tenga en cuenta que algunas utilidades querrán ver las fuentes del sistema.
La distribución de TexLive es pesada, toma hasta 5 Gb. Debe instalar texlive-full o un paquete similar (el nombre puede variar de una distribución a otra).
Sin embargo, en el patio del siglo XXI, y puede utilizar uno de los servicios en línea para trabajar con LaTeX. Por alguna razón, pocos científicos incluso no saben sobre esto. Por ejemplo, uno de los más avanzados.
Un poco sobre LaTeX
Esta no es una guía paso a paso sobre cómo comenzar a usar LaTeX. Echaremos un vistazo rápido a cómo hacer una presentación y, a lo largo del camino, usará Google usted mismo. Pero las referencias básicas que haré. También presta atención a Wikiquote .
Esto se verá como una presentación simple usando el paquete beamer: es él quien es responsable de la presentación:
\documentclass{beamer}
Vamos
Y aquí está la presentación terminada que hice en GolangConf2019 . A su alrededor, giraremos.
Lo primero que debe hacer es olvidar como pesadilla todas las referencias a las fuentes TeX. Donald Knuth comenzó a desarrollar el sistema de fuentes METAFONT en 1977 y lo introdujo en 1979. Fue MUY genial en ese momento. Pero en el patio en 2019, hoy puede arrastrar estándares para nombres de archivos 8 + 3 y fuentes de mapa de bits especiales solo en minutos de aburrimiento. Todos los sistemas modernos funcionan con fuentes vectoriales modernas. Las utilidades de TexLive tienen un nuevo compilador de documentos: xelatex . Es totalmente compatible con pdflatex, pero funciona con fuentes del sistema. Todo lo que debe hacerse es cargar el paquete fontspec o xltxtra (carga fontspec) y configurar las fuentes:
En el ejemplo, configuramos inmediatamente el tamaño de la presentación (16 cm a 9 cm), hicimos un comentario sobre cómo ensamblarlo y conectamos el paquete de babel, que no desmontaremos. Para los usuarios de Linux, les recuerdo que en 2019 las fuentes TTF se pueden colocar en el directorio .fonts en el directorio de inicio.
Puede hacer una presentación sin ningún diseño especial, pero la sensación de belleza por defecto en beamer es extraña, por lo que casi todos usan ciertos temas. Por lo general, las máscaras son una colección de archivos .sty ubicados donde el compilador puede encontrarlos, es decir. en el mismo lugar que el archivo de presentación en sí. El tema está conectado con la línea correspondiente en el preámbulo de la presentación:
\usetheme{gcr2019}
Por cierto, hay una guía maravillosa para crear el tema de diseño de presentación más simple. Hice 3 temas en la próxima conferencia de Oleg Bunin, uno para mí, dos, para ilustrar este artículo: uno , dos y tres .
En principio, todo lo que se define en estos temas puede ser una hoja normal en su archivo de presentación. No hay nada de malo en eso. Los temas son necesarios cuando se necesita repetibilidad. En cada uno de los temas anteriores hay un ejemplo de uso y un resultado compilado.
Superposición
Superposición: esto es cuando su información aparece gradualmente en la misma diapositiva. Aquí hay un ejemplo:
\begin{frame} \begin{itemize} \item<1-> , !.. , ! \item<2-> – . \item<2-> – \item<3-> ! \end{itemize} \end{frame}
Primero, aparece la primera línea, luego la segunda y la tercera, y luego la cuarta. Al mismo tiempo, vimos cómo hacer una lista desordenada. El sistema de recubrimiento se puede sujetar a casi cualquier cosa. Por ejemplo, lo hice resaltando líneas de código (lo consideraremos a continuación).
Presta atención a las líneas en mis plantillas:
\setbeamercolor{itemize item}{fg=black} \setbeamercolor{itemize subitem}{fg=black} \setbeamercolor{alerted text}{fg=black} \setbeamertemplate{itemize items}{\textbullet}
Comente las líneas (use el símbolo% para comentarios) y vea qué sucede. No ese color, triángulos azules y eso es todo.
No encontré dónde determinar esto. Beamer ofrece la posibilidad de usar la misma diapositiva varias veces. Este es realmente genial:
\begin{frame}[label=again]{ } ... \end{frame} ... \againframe{again}
Imágenes
Tome un ejemplo de mi presentación. Dos columnas, una lista desordenada a la izquierda y una imagen a la derecha:
\begin{frame}{ Acme} \begin{columns}[T,onlytextwidth] \begin{column}{0.44\textwidth} \begin{itemize} \item \item --- \emph{ } \item Alef \item Alef = Acme \item 30 \end{itemize} \end{column} \begin{column}{0.56\textwidth} \includegraphics[width=\textwidth]{acme-alef.png} \end{column} \end{columns} \end{frame}
El parámetro [T, onlytextwidth] indica que la alineación vertical se realiza a lo largo de la línea base de las líneas hacia arriba, y el bloque de columnas tiene un ancho igual al ancho del marco para el texto. LaTeX mismo comprimirá la imagen como debería. Puede crear su propio ejemplo y jugar con los parámetros para ver cómo y qué se superpondrá.

Listado de código
Inmediatamente haga una reserva de que no es necesario resaltar la sintaxis en la lista de códigos de la presentación. Si la necesitas allí, estás haciendo algo mal. Se necesita más selección. Utilizo el paquete de listados estándar, que puede resaltar la sintaxis y no puedo seleccionar. Puede ver la configuración de diseño de bloque de listado en cualquiera de mis ejemplos:
\definecolor{acmebg}{HTML}{FFFFEF} \definecolor{acmel}{HTML}{52AAAD} \lstset{ columns=flexible, keepspaces=true, showstringspaces=false, showtabs=false, tabsize=4, frame=single, basicstyle=\fontsize{10pt}{12}\bf\ttfamily\color{black}, backgroundcolor=\color{acmebg}, commentstyle=\color{black}, keywordstyle=\color{black}, stringstyle=\color{red}, rulecolor=\color{acmel}, framerule=1pt }
Para resaltar el fondo, utilizo el paquete lstlinebgrd, que está "abandonado". Tienes que insertar el código correctivo . Pero este código adicional me da el comando \ btLstHL, que me permite resaltar líneas en la superposición:
\begin{frame}[fragile]{Limbo. } \begin{lstlisting}[basicstyle=\fontsize{12pt}{12}\bf\ttfamily\color{black},linebackgroundcolor={% \btLstHL<1>{1}% \btLstHL<2>{2-3}% \btLstHL<3>{5,6}% \btLstHL<4>{8,9}% \btLstHL<5>{11}% }] i, j: int; k := 1; # int b := byte 2; # byte s: string; # s1 := s[0:]; # a: array of int; a = array[10] of int; myfunc: fn(i, k: int, s: string) : (list of string, int); \end{lstlisting} \end{frame}

Bibliografia
Por simplicidad y versatilidad, uso el paquete biblatex. Aquí está la dificultad. El paquete beamer anula algunos de los valores predeterminados de biblatex. Estos comandos eliminan los iconos y establecen la fuente para la bibliografía:
\setbeamertemplate{bibliography item}{\insertbiblabel} \renewcommand*{\bibfont}{\fontsize{8}{1}\selectfont}
Debemos recordar un punto importante: la bibliografía se encuentra en un archivo separado. En los ejemplos en las plantillas, escribo una bibliografía en el texto principal usando el paquete de contenido de archivos, que a su vez crea el archivo real deseado. Y la compilación se lleva a cabo en CUATRO pasos. Primero, xelatex simplemente compila el archivo y crea los archivos de soporte. Luego, la utilidad biber compila el archivo de bibliografía, luego debe ejecutar xelatex dos veces más. Sí, con los preprocesadores todo es complicado allí.
El paquete biblatex también es personalizable. Pero por primera vez, tengo suficiente de lo que tengo en los ejemplos.
Epílogo
Disfruté preparando la presentación y preparando los materiales para este artículo. Espero que si alguien quisiera, pero no pudiera decidir comenzar a usar LaTeX en su trabajo, rompí esta barrera. Por supuesto, no hice paquetes, no profundicé, no mencioné temas importantes de dibujo. Pero creo que todo esto ocurrirá tan pronto como comience a usar la herramienta. Hay buenos artículos prácticos sobre Habr con la etiqueta #latex .
Espero que mis plantillas ayuden a alguien en las próximas conferencias. Quizás alguien redacte esos fragmentos del código auxiliar con luz de fondo que han estado en Internet durante años en un paquete adecuado. ¡A por ello!