No começo de dezembro de 2024 eu apresentei um artigo no Simpósio Brasileiro de Métodos Formais e, quando estava preparando meus slides, eu percebi que não tinha nenhum template para slides em LaTeX pronto e tive que customizar um template e tema da UDESC que eu tinha de apresentações passadas.
Depois da apresentação eu fiquei pensando sobre quanto tempo eu tinha gasto customizando esse template e brigando com o tema dele ao invés de fazer a apresentação em si, o que me deu a ideia de criar meu próprio tema de slides, assim como templates para apresentações de slides e para artigos, ambos em português e inglês, assim como montar um pacote com minhas macros e outras definições uteis que fiz com os anos. Nesse post eu vou falar um pouco sobre a aventura que foi isso.
Apesar que o tema de slides foi o que me levou a ter essa ideia inicialmente, eu decidi começar essa aventura convertendo um arquivo .tex
de definições úteis em um pacote .sty
. O principal motivo por trás dessa decisão foi o fato do tema de slides sobre o qual iria me basear ter alguns… problemas que eu não queria ter que lidar naquele momento.
Começar com essa conversão foi uma boa ideia, pois aprendi como funcionavam algumas coisas do LaTeX que já havia me deparado mas nunca tinha entendido direito.
Por exemplo, o que faz o comando \relax
(nada, literalmente), o que fazem os comandos \makeatletter
e \makeatother
(respectivamente, forçam o símbolo “@” a ser interpretado como uma letra e como um símbolo especial) e a diferença entre \usepackage
e \RequirePackage
(o primeiro deve ser usado em arquivos .tex
e o segundo em .sty
). No mais, essa parte foi fácil, copiei todas as minhas definições do .tex
para um .sty
de mesmo nome, adicionei algumas opções para carregar certos pacotes apenas se passo a opção, adicionei mais alguns comentários e estava pronto… depois eu fiquei cerca de uma hora debugando as opções, sim, porém isso são detalhes.
Com isso feito, eu parti para fazer os meus templates de artigos em português e inglês, algo que também foi um tanto fácil. Como eu já tinha feito dezenas de artigos em LaTeX foi apenas uma questão de ver quais pacotes eu normalmente usava, criar um comentário explicando o que cada um faz e preencher alguns campos como o autor e o título de algumas seções. As diferenças entre as versões em português e inglês são mínimas, então não irei dar detalhes sobre.
Após eu pretendia fazer o meu tema de slides, porém a minha falta de vontade de arrumar os problemas no tema da UDESC falou mais alto e eu decidi antes criar um pacote com as minhas customizações específicas para slides, algo que foi trivialmente fácil pois tenho pouquíssimas dessas.
Enfim era a hora de enfrentar os problemas no meu tema de slides. O tema que tinha da UDESC era uma customização de um tema chamado ru theme e eu gosto bastante dele, quase todo o espaço do slide é dedicado ao conteúdo do slide em si, o título e (sub)seção atual estão no topo do slide e o título da apresentação assim como nome do(s) autor(es), data e contador de slides estão na base do slide. O problema estava na parte de cima do slide, na caixa que contém o título do slide, ela terminava um pixel antes da borda do slide.
Repare o lado direito da imagem.
Eu não consigo descrever o quanto isso me incomodava, mas eu imagino que você, caro leitor, também se sinta incomodado por isso. Estranhamente, eu não conseguia reproduzir isso na versão original do tema no meu computador.
Repare o lado direito da imagem.
Eu então passei um dia inteiro batendo a cabeça sobre o que poderia estar causando isso, pesquisei o que era cada componente do tema, mudei praticamente todas as definições, tentei tirar cada componente para ver se descobria o erro, mas nada resolvia. Após muitas tentativas de arrumar o tema da UDESC, eu fui para o tema original, na esperança que o erro estava em alguma modificação feita no tema da UDESC. Imediatamente eu me deparei com um aviso que alguma imagem de background não estava sendo carregada, eu então removi essa importação, compilei meus slides e vi que problema havia voltado.
Nesse momento eu lembrei de um excelente vídeo do Computerphile sobre fusos horários, questionei se valia a pena fazer o que eu estava fazendo, fechei o VSCode e levei meu cachorro pra passear.
Levou alguns dias até a vontade de trabalhar nisso voltar, mas quando ela voltou, eu decidi que iria abandonar esse tema e customizar um tema padrão do beamer
. Eu então fui atrás de uma lista de temas do beamer
quando me deparei com o tema Warsaw e percebi, para minha surpresa, que ele era praticamente igual ao ru theme. Após pensar por alguns momentos, eu decidi que iria descobrir o que havia de errado com o ru theme.
Após alguns minutos fuçando pela internet e depois por minha instalação local de LaTeX, eu achei o código fonte do tema e, consequentemente, eu calmamente exclamei minha surpresa e minha insatisfação com o criador do ru theme.
O motivo é simples. Abaixo está a definição da caixa que contém o título dos slides no ru theme:
\begin{pgfpicture}{0.1mm}{0pt}{1.01\paperwidth}{\beamer@tempdim}
\usebeamercolor{frametitle right}
\pgfpathrectangle{\pgfpointorigin}{\pgfpoint{\paperwidth}{\beamer@tempdim}}
\pgfusepath{clip}
\pgftext[left,base]{\pgfuseshading{beamer@frametitleshade}}
\end{pgfpicture}
E abaixo está a definição no tema Warsaw:
\begin{pgfpicture}{0pt}{0pt}{\paperwidth}{\beamer@tempdim}
\usebeamercolor{frametitle right}
\pgfpathrectangle{\pgfpointorigin}{\pgfpoint{\paperwidth}{\beamer@tempdim}}
\pgfusepath{clip}
\pgftext[left,base]{\pgfuseshading{beamer@frametitleshade}}
\end{pgfpicture}
Perceba como o valor do primeiro argumento é diferente. Sim, esse era o problema. Zero ponto um milímetros.
Agora, caro leitor, você deve estar se perguntando: “Miguel, por que você não tentou mudar esse valor?”, e eu lhe respondo: Eu tentei. Várias vezes. Mas, como esse valor é um deslocamento, eu tentei colocar apenas valores maiores que 0.1mm, imaginando que esse deslocamento era muito pequeno para esse uso.
De qualquer forma, eu erroneamente acreditei que os valores que o criador do tema havia fornecido estariam corretos. Talvez eles estivessem, para o uso que o criador tinha em mente quando ele fez este tema. Nunca saberemos.
Após isso, eu tive algumas outras (des)aventuras com LaTeX, dentre elas montar meu template de slides, criar um template para um evento que estou ajudando a organizar e converter um arquivo .tex
em um .docx
(essa foi uma dor de cabeça) mas nada demais para registrar aqui.