Rédaction de présentations dans LaTeX

Lors de la préparation du rapport à GolangConf'2019, j'ai utilisé LaTeX. Malgré des choses dépassées, un comportement un peu inhabituel, une documentation maigre ou complexe, je l'ai soudainement apprécié. Je ne suis pas devenu un «gourou» de LaTeX, mais j'ai pu faire de très bonnes diapositives. Et je veux décrire les principaux points de la création d'une présentation moderne sur LaTeX. Cela devrait surtout aller aux spécialistes des TI qui programment par profession. La programmation de votre présentation est amusante.



Pourquoi LaTeX:


  • Superpositions flexibles (lorsque les informations sur une diapositive apparaissent tour à tour)
  • Répétabilité et unicité
  • Nous écrivons comme un programme. Certaines ressources peuvent être stockées dans des fichiers séparés - code, liste de liens

Pourquoi PAS LaTeX:


  • Sortie PDF uniquement
  • Les tableaux et colonnes de réglage fin, le cas échéant, peuvent prendre plus de temps que de déplacer la souris. Pas besoin de faire une présentation en cinq diapositives complexes dans LaTeX. Et en 55 - il faut

Commençons par l'installation


Dans la pratique, il existe désormais une distribution d'utilitaires LaTeX / TeX leader qui a absorbé tout le reste - TexLive. Les numéros y sont numérotés par année. Ne mettez pas de versions archéologiques avant 2018. Donc, presque tous les utilisateurs d'Ubuntu sont ici . Il existe un ensemble distinct pour les pilotes de pavot. Ou vous pouvez utiliser le programme d'installation universel, y compris pour Windows .


Les utilisateurs de CentOS doivent souffrir.


Dans tous les cas, vous pouvez créer votre propre Dockerfile et l'utiliser. Mais notez que certains utilitaires voudront voir les polices système.


La distribution TexLive est lourde, prend jusqu'à 5 Go. Vous devez installer texlive-full ou un package similaire (le nom peut varier d'une distribution à l'autre).


Cependant, dans la cour du XXIe siècle, et vous pouvez utiliser l'un des services en ligne pour travailler avec LaTeX. Pour une raison quelconque, peu de scientifiques, même ne le savent pas. Par exemple, l' un des plus avancés.


Un peu sur LaTeX


Ce n'est pas un guide étape par étape sur la façon de démarrer avec LaTeX. Nous allons voir rapidement comment faire une présentation et comment vous utiliserez Google vous-même. Mais les références de base que je ferai. Faites également attention à Wikiquote .


Cela ressemblera à une présentation simple utilisant le package beamer - c'est lui qui est responsable de la présentation:


\documentclass{beamer}%   %    \title{My Super Topic} \author{Ashot and Alice} \begin{document}%   \begin{frame}%   \titlepage \end{frame} \begin{frame}%   Hello, World! \end{frame} \end{document} 

On y va


Et voici la présentation finale que j'ai faite à GolangConf2019 . Autour d'elle, nous tournerons.


La première chose à faire est d'oublier comme cauchemar toutes les références aux polices TeX. Donald Knuth a commencé à développer le système de polices METAFONT en 1977 et l'a introduit en 1979. C'était TRÈS cool à l'époque. Mais dans la cour en 2019, aujourd'hui, vous ne pouvez faire glisser les normes pour les noms de fichiers 8 + 3 et les polices bitmap spéciales qu'en quelques minutes d'ennui. Tous les systèmes modernes fonctionnent avec des polices vectorielles modernes. Les utilitaires TexLive ont un nouveau compilateur de documents - xelatex . Il est entièrement compatible avec pdflatex, mais fonctionne avec les polices système. Tout ce qui doit être fait est de charger le package fontspec ou xltxtra (il charge fontspec) et de définir les polices:


 % !TeX TS-program = xelatex \documentclass[aspectratio=169]{beamer} \usepackage{xltxtra} \usepackage[main=russian,english]{babel} \setmainfont{Arial} \setromanfont{Times New Roman} \setsansfont{Arial} \setmonofont{Courier New} ... 

Dans l'exemple, nous avons immédiatement défini la taille de la présentation (16 cm à 9 cm), fait un commentaire sur la façon de l'assembler et connecté le paquet babel, que nous ne démonterons pas. Pour les utilisateurs de Linux, je vous rappelle qu'en 2019, les polices TTF peuvent être déposées dans le répertoire .fonts du répertoire personnel.


Thèmes


Vous pouvez faire une présentation sans aucun design spécial, mais la sensation de beauté par défaut dans le beamer est étrange, donc presque tout le monde utilise certains sujets. En règle générale, les habillages sont une collection de fichiers .sty situés où le compilateur peut les trouver, c'est-à-dire au même endroit que le fichier de présentation lui-même. Le sujet est lié à la ligne correspondante dans le préambule de la présentation:


 \usetheme{gcr2019}%     

Il y a, en passant, un merveilleux guide pour créer le thème de conception de présentation le plus simple. J'ai fait 3 sujets lors de la prochaine conférence d'Oleg Bunin, un pour moi, deux - pour illustrer cet article: un , deux et trois .


En principe, tout ce qui est défini dans ces rubriques peut être une feuille régulière dans votre fichier de présentation. Il n'y a rien de mal à cela. Les sujets sont nécessaires lorsque la répétabilité est nécessaire. Dans chacun des thèmes ci-dessus, il y a un exemple d'utilisation et un résultat compilé.


Superposition


Superposition - c'est lorsque vos informations apparaissent progressivement sur la même diapositive. Voici un exemple:


 \begin{frame} \begin{itemize} \item<1-> , !.. ,  ! \item<2->     –   . \item<2->    –    \item<3->     ! \end{itemize} \end{frame} 

D'abord, la première ligne apparaît, puis les deuxième et troisième, puis la quatrième. En même temps, nous avons vu comment faire une liste non ordonnée. Le système de superposition peut être fixé à presque tout. Par exemple, je l'ai fait en mettant en évidence des lignes de code (nous examinerons ci-dessous).


Faites attention aux lignes de mes modèles:


 \setbeamercolor{itemize item}{fg=black} \setbeamercolor{itemize subitem}{fg=black} \setbeamercolor{alerted text}{fg=black} \setbeamertemplate{itemize items}{\textbullet}%     \setbeamerfont*{itemize/enumerate subbody}{parent=itemize/enumerate body} \setbeamerfont*{itemize/enumerate subsubbody}{parent=itemize/enumerate subbody} \setbeamerfont{alerted text}{series=\bfseries} 

Commentez les lignes (utilisez le symbole% pour les commentaires) et voyez ce qui se passe. Pas cette couleur, les triangles bleus et c'est tout.


Je n'ai pas trouvé où déterminer cela. beamer offre la possibilité d'utiliser plusieurs fois la même diapositive. Celui-ci est vraiment cool:


 \begin{frame}[label=again]{   } ... \end{frame} ... \againframe{again} 

Les photos


Prenons un exemple de ma présentation. Deux colonnes, une liste non ordonnée à gauche et une image à droite:


 \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} 

Le paramètre [T, onlytextwidth] indique qu'un alignement vertical est effectué le long de la ligne de base des lignes vers le haut et que le bloc de colonnes a une largeur égale à la largeur du cadre pour le texte. LaTeX lui-même compressera l'image comme il se doit. Vous pouvez créer votre propre exemple et jouer avec les paramètres pour voir comment et ce qui va se chevaucher.



Liste des codes


Faites immédiatement une réservation pour éviter la mise en évidence de la syntaxe dans la liste de codes de la présentation. Si vous en avez besoin, vous faites quelque chose de mal. Plus de sélection nécessaire. J'utilise le package d'annonces standard, qui peut mettre en évidence la syntaxe et ne peut pas sélectionner. Vous pouvez voir les paramètres de disposition de bloc de liste dans l'un de mes exemples:


 \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 } 

Pour mettre en évidence l'arrière-plan, j'utilise le package lstlinebgrd, qui est "abandonné". Vous devez insérer le code correctif . Mais ce code supplémentaire me donne la commande \ btLstHL, qui me permet de mettre en évidence les lignes dans la superposition:


 \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} 


Bibliographie


Pour plus de simplicité et de polyvalence, j'utilise le package biblatex. Voici la difficulté. Le package beamer remplace certains des paramètres par défaut de biblatex. Ces commandes suppriment les icônes et définissent la police de la bibliographie:


 \setbeamertemplate{bibliography item}{\insertbiblabel} \renewcommand*{\bibfont}{\fontsize{8}{1}\selectfont} 

Nous devons nous rappeler un point important - la bibliographie est placée dans un fichier séparé. Dans les exemples des modèles, j'écris une bibliographie dans le texte principal en utilisant le paquet filecontents, qui à son tour crée le vrai fichier souhaité. Et la compilation se déroule en QUATRE étapes. Tout d'abord, xelatex compile simplement le fichier et crée les fichiers de support. Ensuite, l'utilitaire biber compile le fichier de bibliographie, puis vous devez exécuter xelatex deux fois de plus. Oui, avec les préprocesseurs, tout y est compliqué.


Le package biblatex est également personnalisable. Mais pour la première fois, j'ai assez de ce que j'ai dans les exemples.


Postface


J'ai apprécié préparer la présentation et préparer le matériel pour cet article. J'espère que si quelqu'un le voulait, mais ne pouvait pas décider de commencer à utiliser LaTeX dans son travail - j'ai brisé cette barrière. Bien sûr, je n'ai pas fait de packages, je n'ai pas creusé en profondeur, je n'ai pas mentionné de sujets de dessin importants. Mais je pense que tout cela arrivera dès que vous commencerez à utiliser l'outil. Il y a de bons articles pratiques sur Habr par la balise #latex .


J'espère que mes modèles aideront quelqu'un lors des prochaines conférences. Peut-être que quelqu'un rédigera ces morceaux du code auxiliaire avec rétro-éclairage qui traînent sur Internet depuis des années dans un package approprié. Allez-y!

Source: https://habr.com/ru/post/fr471352/


All Articles