Escrevendo apresentações no LaTeX

No processo de preparação do relatório na GolangConf'2019, usei o LaTeX. Apesar de algumas coisas desatualizadas, um pouco de comportamento incomum, documentação escassa ou complexa, de repente eu gostei. Não me tornei um “guru” do LaTeX, mas fui capaz de fazer slides muito bons. E quero descrever os principais pontos da criação de uma apresentação moderna no LaTeX. Isso deve ser direcionado especialmente aos especialistas em TI que programam por ocupação. Programar sua apresentação é divertido.



Por que o LaTeX:


  • Sobreposições flexíveis (quando as informações em um slide aparecem por sua vez)
  • Repetibilidade e Exclusividade
  • Nós escrevemos como um programa. Alguns recursos podem ser armazenados em arquivos separados - código, lista de links

Por que NÃO LaTeX:


  • Somente saída em PDF
  • Tabelas e colunas de ajuste fino, se houver, podem levar mais tempo do que mover o mouse. Não é necessário fazer uma apresentação em cinco slides complexos no LaTeX. E em 55 - é necessário

Vamos começar com a instalação


Na prática, agora existe uma importante distribuição de utilitários LaTeX / TeX que absorveu todo o resto - o TexLive. As edições são numeradas por ano. Não coloque versões arqueológicas anteriores a 2018. Então, quase todos os usuários do Ubuntu estão aqui . Há um conjunto separado para drivers de papoula. Ou você pode usar o instalador universal, inclusive para Windows .


Usuários do CentOS devem sofrer.


Em qualquer caso, você pode criar seu próprio Dockerfile e usá-lo. Mas observe que alguns utilitários desejam ver as fontes do sistema.


A distribuição do TexLive é pesada, leva até 5 GB. Você precisa instalar o texlive-full ou um pacote semelhante (o nome pode variar de distribuição para distribuição).


No entanto, no pátio do século XXI, você pode usar um dos serviços on-line para trabalhar com o LaTeX. Por alguma razão, poucos cientistas ainda não sabem disso. Por exemplo, um dos mais avançados.


Um pouco sobre o LaTeX


Este não é um guia passo a passo sobre como começar a usar o LaTeX. Vamos dar uma olhada rápida em como fazer uma apresentação e, ao longo do caminho, você mesmo usará o Google. Mas as referências básicas que farei. Também preste atenção ao Wikiquote .


Isso parecerá uma apresentação simples usando o pacote beamer - é ele quem é responsável pela apresentação:


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

Vamos lá


E aqui está a apresentação finalizada que fiz no GolangConf2019 . Ao seu redor, giraremos.


A primeira coisa que você deve fazer é esquecer como pesadelo todas as referências às fontes TeX. Donald Knuth começou a desenvolver o sistema de fontes METAFONT em 1977 e o introduziu em 1979. Foi muito legal na época. Mas no quintal de 2019, hoje você pode arrastar padrões para nomes de arquivos 8 + 3 e fontes de bitmap especiais apenas em minutos de tédio. Todos os sistemas modernos funcionam com fontes vetoriais modernas. Os utilitários TexLive têm um novo compilador de documentos - xelatex . É totalmente compatível com pdflatex, mas funciona com fontes do sistema. Tudo o que precisa ser feito é carregar o pacote fontspec ou xltxtra (ele carrega fontspec) e definir as fontes:


 % !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} ... 

No exemplo, definimos imediatamente o tamanho da apresentação (16cm a 9cm), fizemos um comentário sobre como montá-la e conectamos o pacote babel, que não analisaremos. Para usuários do Linux, lembro que em 2019 as fontes TTF podem ser inseridas no diretório .fonts no diretório inicial.


Temas


Você pode fazer uma apresentação sem nenhum design especial, mas a sensação de beleza por padrão no beamer é estranha, então quase todo mundo usa determinados tópicos. Normalmente, as skins são uma coleção de arquivos .sty localizados onde o compilador pode encontrá-los, ou seja, no mesmo local que o próprio arquivo de apresentação. O tópico está conectado à linha correspondente no preâmbulo da apresentação:


 \usetheme{gcr2019}%     

A propósito, existe um guia maravilhoso para criar o tema de design de apresentação mais simples. Eu fiz três tópicos na próxima conferência de Oleg Bunin, um para mim, dois - para ilustrar este artigo: um , dois e três .


Em princípio, tudo o que é definido nesses tópicos pode ser uma planilha regular no seu arquivo de apresentação. Não há nada de errado nisso. Os tópicos são necessários quando a repetibilidade é necessária. Em cada um dos temas acima, há um exemplo de uso e um resultado compilado.


Sobreposição


Overlay - é quando suas informações aparecem gradualmente no mesmo slide. Aqui está um exemplo:


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

Primeiro, a primeira linha aparece, depois a segunda e a terceira e depois a quarta. Ao mesmo tempo, vimos como fazer uma lista não ordenada. O sistema de sobreposição pode ser fixado em quase tudo. Por exemplo, fiz isso destacando as linhas de código (consideraremos abaixo).


Preste atenção nas linhas dos meus modelos:


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

Comente as linhas (use o símbolo% para comentários) e veja o que acontece. Não é essa cor, triângulos azuis e só isso.


Não encontrei onde determinar isso. O beamer fornece a capacidade de usar o mesmo slide várias vezes. Este é muito legal:


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

Imagens


Veja um exemplo da minha apresentação. Duas colunas, uma lista não ordenada à esquerda e uma imagem à direita:


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

O parâmetro [T, onlytextwidth] indica que o alinhamento vertical é realizado ao longo da linha de base das linhas acima e o bloco de colunas possui uma largura igual à largura do quadro do texto. O próprio LaTeX comprime a imagem como deveria. Você pode criar seu próprio exemplo e brincar com os parâmetros para ver como e o que se sobrepõe.



Listagem de código


Faça imediatamente uma reserva que não é necessário destacar a sintaxe na listagem de códigos da apresentação. Se você precisar dela, está fazendo algo errado. É necessária mais seleção. Eu uso o pacote de listagens padrão, que pode destacar a sintaxe e não pode selecionar. Você pode ver as configurações de layout do bloco de listagem em qualquer um dos meus exemplos:


 \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 destacar o plano de fundo, eu uso o pacote lstlinebgrd, que é "abandonado". Você precisa inserir o código corretivo . Mas esse código adicional fornece o comando \ btLstHL, que permite destacar linhas na sobreposição:


 \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


Para simplicidade e versatilidade, eu uso o pacote biblatex. Aqui está a dificuldade. O pacote beamer substitui alguns dos padrões da biblatex. Estes comandos removem os ícones e definem a fonte da bibliografia:


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

Devemos lembrar um ponto importante - a bibliografia é definida em um arquivo separado. Nos exemplos dos modelos, escrevo uma bibliografia no texto principal usando o pacote filecontents, que por sua vez cria o arquivo real desejado. E a compilação ocorre em quatro etapas. Primeiro, o xelatex simplesmente compila o arquivo e cria os arquivos de suporte. Em seguida, o utilitário biber compila o arquivo bibliográfico e é necessário executar o xelatex mais duas vezes. Sim, com os pré-processadores, tudo é complicado por lá.


O pacote biblatex também é personalizável. Mas, pela primeira vez, tenho o suficiente do que tenho nos exemplos.


Posfácio


Gostei de preparar a apresentação e os materiais deste artigo. Espero que alguém queira, mas não consiga decidir começar a usar o LaTeX em seu trabalho - quebrei essa barreira. É claro que não fiz pacotes, não me aprofundou, não mencionei tópicos importantes de desenho. Mas acho que tudo isso acontecerá assim que você começar a usar a ferramenta. Existem bons artigos práticos sobre Habr com a tag #latex .


Espero que meus modelos ajudem alguém nas próximas conferências. Talvez alguém redija os fragmentos do código auxiliar com luz de fundo que estão na Internet há anos em um pacote adequado. Vá em frente!

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


All Articles