diff --git a/texto/resumo/apresentacao/images/erad-logo.png b/texto/resumo/apresentacao/images/erad-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1e2486fb10c3a1bbd44669014c4d4aa37378b353 Binary files /dev/null and b/texto/resumo/apresentacao/images/erad-logo.png differ diff --git a/texto/resumo/apresentacao/makefile b/texto/resumo/apresentacao/makefile new file mode 100644 index 0000000000000000000000000000000000000000..a2c1fa70006959111f8db7985a410bff9f109b87 --- /dev/null +++ b/texto/resumo/apresentacao/makefile @@ -0,0 +1,29 @@ +# This makefile uses latexmk +# http://www.ctan.org/pkg/latexmk +# +# latexmk is available as a Debian package of the same name +# http://packages.debian.org/search?keywords=latexmk + +#------------------------------------------------------------------------------ +LATEXMK = latexmk -pdf \ + -use-make \ + -recorder \ + -e '$$latex="latex -src-specials -interaction=nonstopmode %O %S"' \ + -e '$$pdflatex="pdflatex -src-specials -interaction=nonstopmode %O %S"' + +TEXs = $(wildcard *.tex) + +PDFs = $(subst .tex,.pdf,$(TEXs)) + +#------------------------------------------------------------------------------ +.PHONY : default clean + +#------------------------------------------------------------------------------ +default : slides-erad.pdf + +$(PDFs) : %.pdf : %.tex + $(LATEXMK) $< + +#------------------------------------------------------------------------------ +clean :: + latexmk -e '$$clean_ext = "bbl pdfsync nav snm vrb synctex.gz run.xml bib"' -c diff --git a/texto/resumo/apresentacao/slides-erad.pdf b/texto/resumo/apresentacao/slides-erad.pdf new file mode 100644 index 0000000000000000000000000000000000000000..85e9b0dfd08fe63677678ab9903273c58cb80272 Binary files /dev/null and b/texto/resumo/apresentacao/slides-erad.pdf differ diff --git a/texto/resumo/apresentacao/slides-erad.tex b/texto/resumo/apresentacao/slides-erad.tex new file mode 100644 index 0000000000000000000000000000000000000000..4034577ebdbb4b764979948dcef834bb9c599ba2 --- /dev/null +++ b/texto/resumo/apresentacao/slides-erad.tex @@ -0,0 +1,655 @@ +% ---------------------------------------------------------------------- +% Date: 6 June 2022 +% Author: Roberto Metere +% Project: Beamer template for University of York +% +% Copyright (C) 2022 Roberto Metere +% ---------------------------------------------------------------------- +% +\documentclass[t,compress,aspectratio=169,xcolor=table]{beamer} +\usepackage[brazilian]{babel} +\usepackage[utf8]{inputenc} +\usepackage[uoybglogo]{uoy-beamer} +\usepackage{listings} +\usepackage[style=authoryear,autocite=footnote,backend=bibtex,citetracker=true]{biblatex} +%\usepackage[noend]{algorithm2e} % https://mlg.ulb.ac.be/files/algorithm2e.pdf +\usepackage{amsthm} +\usepackage{hyperref} +\usepackage{xcolor,colortbl} +%\usepackage{enumitem,xcolor} +%\usepackage{pifont} +%\usepackage{amssymb} + +% Set to 1 or comment to disable transparency and enable full opacity. +%% \setblockbodyopacity{0.8} + +% Listings +%\definecolor{cident}{rgb}{1,0.33,0.42} +%\definecolor{ckeyw}{rgb}{0,0.1,1} +%\definecolor{ccomm}{rgb}{0,0.8,0} +%\definecolor{cstr}{rgb}{0.8,0,0} + +\def\HiLi{\leavevmode\rlap{\hbox to + \hsize{\color{yellow!50}\leaders\hrule height .8\baselineskip + depth .5ex\hfill}}} + +\lstset{language=[LaTeX]{TeX}, + basicstyle=\footnotesize\ttfamily, + keywordstyle=\color{ckeyw}\bfseries, + identifierstyle=\color{cident}\bfseries, + commentstyle=\color{ccomm}, + stringstyle=\color{cstr}, + showstringspaces=false, + breaklines=true, + breakatwhitespace=true, + tabsize=2, +% numbers=left, +% stepnumber=1, +% firstnumber=1, +% numberfirstline=true, +} + +\usepackage{makecell} +\usepackage{textcomp} + +\usetikzlibrary{graphs} +\usetikzlibrary{calc} +\usetikzlibrary{arrows} +\usetikzlibrary{decorations.markings} +\usetikzlibrary{shapes} + +% \uoysetidentity{Department of}{Computer Science} + +\definecolor{laranja}{RGB}{8, 150, 205} +\definecolor{azul}{RGB}{255, 176, 50} +\definecolor{amarelo}{RGB}{02, 138, 15} +\definecolor{verde}{RGB}{0, 132, 200} +\definecolor{branco}{RGB}{255, 255, 255} +\definecolor{cinza}{RGB}{128, 128, 128} + +\setbeamercolor{block title}{bg=laranja,fg=white} +\setbeamerfont{block title}{series=\bfseries,size=\small} +\setbeamercolor{block body}{bg=laranja!20,fg=black} + +\renewbibmacro{in:}{} +\addbibresource{../../include/bibclac.bib} +\DeclareFieldFormat*{citetitle}{#1} +\DeclareFieldFormat*{title}{#1} +\DeclareSourcemap{ +\maps[datatype=bibtex, overwrite]{ +\map{ +\step[fieldset=url, null] +} +} +} + +\setbeamercolor*{item}{fg=laranja} +\hypersetup{colorlinks,linkcolor=,urlcolor=verde} +\setbeamercolor{bibliography entry author}{fg=verde} +%% \setbeamercolor{bibliography item}{fg=green} +\setbeamercolor{bibliography entry title}{fg=black} +\setbeamercolor{bibliography entry location}{fg=black} +\setbeamercolor{bibliography entry note}{fg=black} + + +%% \hypersetup{ +%% colorlinks=true, +%% linkcolor=yellow, +%% citecolor=yellow +%% } + +\makeatletter +\newcommand{\plainbibfn}[1]{\bibfootnotewrapper{#1}} + +\newbibmacro*{spfullfoot}{% +\let\@makefntext\plainbibfn +\footnotetext{\tiny% +\fullcite{\thefield{entrykey}}}} + +\let\oldopenbracket\bibopenbracket +\let\oldclosebracket\bibclosebracket +\def\bibopenbracket{\mkbibsuperscript{\oldopenbracket}} +\def\bibclosebracket{\mkbibsuperscript{\oldclosebracket}} + +\DeclareCiteCommand{\mycite}[\mkbibbrackets] +{\usebibmacro{prenote}} +{\usebibmacro{citeindex}% +\mkbibsuperscript{\usebibmacro{cite}}% +\usebibmacro{spfullfoot}} +{\mkbibsuperscript{\multicitedelim}} +{\usebibmacro{postnote}} +\makeatother + +\title[]{\textbf{Comparação de compiladores C/C++ para processadores x86}} +\subtitle{\mbox{}} +\author[]{Cristopher Carcereri \and Daniel Oliveira} +\institute{\hspace{1cm}} +\date[]{25 de Abril de 2025} + +% \setlength{\frametitlemargin}{1mm} + +\begin{document} +% ====================================================================== +% --- Capa +% ====================================================================== +\begin{frame}[plain] +\maketitle +\end{frame} +% ====================================================================== +% --- Corpo +% ====================================================================== +\begin{frame} + \frametitle{Objetivos} + + Com aplicações de alta performance escritas em linguagens de alto nível, + a eficácia do compilador é um fator importante para a performance do sistema. + + \pause + + Exploramos o impacto de compiladores C/C+ no desempenho de aplicacões + científicas buscando: + \begin{itemize} + \item Comparar a performance de diferentes opções + \item Investigar os motivos para as diferenças observadas + \end{itemize} + + \pause + + Entender as diferenças de performance é importante para + \begin{itemize} + \item Pesquisadores e desenvolvedores: maximizar eficiência de uma aplicação + \item Desenvolvedores de compiladores: melhorar seu produto + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{Compiladores testados} + + Quatro compiladores comparados: + + \pause + + \begin{itemize} + \item GCC (14.2.1): parte do projeto GNU, inclui front ends para várias + linguagens e back ends para diversas arquiteturas + + \pause + + \item Clang (19.1.0): front end para linguagens na família C para o LLVM. + + \pause + + \item ICC (2025.0.1): Intel C Compiler, também baseado no LLVM (19.0.0) + + \pause + + \item AOCC (5.0): Fork do Clang que inclui otimizações da AMD. + O back end é o LLVM 17.0.6 + \end{itemize} + +\end{frame} + +\begin{frame} + \frametitle{Programas testados} + + Comparações baseadas no conjunto de benchmarks Rodinia (versão 3.1): + \begin{itemize} + \item Fácil de obter e testar + \item Implementa vários programas paralelos úteis para aplicações + científicas + \end{itemize} + + \pause + + Empregadas implementações usando a API OpenMP. + + De um total de 19, foram selecionados 17. + + \pause + + Ajustes na versão original do Rodinia: + \begin{itemize} + \item Makefiles alterados para simplificar compilação com diferentes + parâmetros + \item Saída dos programas direcionada para /dev/null para reduzir impacto + de I/O + \end{itemize} + + Benchmarks modificados, scripts e testes disponíveis em:\\ + \url{https://gitlab.c3sl.ufpr.br/clac16/ic-comparacao-compiladores-x86} + +\end{frame} + + +\begin{frame} + \frametitle{Os testes} + + Benchmacks compilados e executados em um computador com AMD Ryzen 1700 e + 16 GiB de RAM. + + \pause + + Diferentes conjuntos de flags de otimização testados. + Apenas os mais relevantes reportados: + + \begin{itemize} + \item \texttt{(aocc|clang) -O3 [-march=native]} + \item \texttt{gcc -O3 -funroll-loops [-march=native]} + \item \texttt{icx -O3 -fp-model=precise [-march=native]} + \end{itemize} + + \pause + + Váriações entre flags usadas: + \begin{itemize} + \item ICC: otimizações que sacrificam acurácia por default (\texttt{-fp-model=fast=1}) + \item GCC: \texttt{-O3} não implica loop unrolling + \end{itemize} + +\end{frame} + +\begin{frame} + \frametitle{Os testes} + + Para cada combinação de benchmack, compilador e flags: 8 execuções. + + \vspace{0.6cm} + + Performance para uma combinação: inverso da média aritmética. + + \vspace{0.6cm} + + Performance para um compilador com conjunto de flags: inverso da média + geométrica das médias para os 17 benchmarks individuais. + + Desvio padrão geométrico igual ou inferior a 1.012. + +\end{frame} + +\begin{frame} + \frametitle{Desempenho médio} + + \begin{table}[h] + \centering + \scriptsize + \begin{tabular}{| l | c |} + \hline + \textbf{\centering Compilador e flags} & \makecell{\textbf{Tempo de execução} \\ \textbf{(Média Geométrica)}}\\ + \hline + \texttt{aocc -O3} & 47.28 \\ + \texttt{aocc -O3 -march=native} & 48.51 \\ + \texttt{clang -O3} & 46.7 \\ + \texttt{clang -O3 -march=native} & 47.75 \\ + \texttt{gcc -O3 -funroll-loops} & 45.92 \\ + \texttt{gcc -O3 -funroll-loops -march=native} & 44.69 \\ + \texttt{icx -O3 -fp-model=precise} & 43.37 \\ + \texttt{icx -O3 -march=native -fp-model=precise} & 42.7 \\ + \hline + \end{tabular} + \caption{Tempos de execução médios para diferentes parâmetros de compilação} + \end{table} + + \pause + + \begin{columns} + \column{.5\textwidth} + Melhor desempenho: ICC + + \pause + + \begin{itemize} + \item ICC superou GCC em \(\sim\)5\% + \item GCC superou Clang em \(\sim\)4\% + \item Clang superou AOCC entre 1\% e 3\% + \end{itemize} + + \pause + + \column{.5\textwidth} + Flag \texttt{-march=native}: + \begin{itemize} + \item Melhora com GCC e ICC + \item Piora com Clang e AOCC + \end{itemize} + + Problemas ao usar extensões como AVX2 + +\end{columns} + +\end{frame} + +\begin{frame} + \frametitle{Desempenho por aplicação} + + \pgfplotstableread[col sep=comma]{performances-relativas-precise.csv}\relativetable + + \begin{figure} + \centering + \resizebox{9.1cm}{!}{ + \begin{tikzpicture} + \begin{axis}[ + ymin=0, + xtick=data, + symbolic x coords={particle-filter,srad,nn,hotspot3D,b+tree,lavaMD,kmeans, + hotspot,backprop,pathfinder,bfs,euler3d,streamcluster,myocyte,nw,leukocyte, + heartwall}, + xticklabel style={rotate=45, anchor=east}, + width=13cm, height=8cm, + enlarge x limits=0.1, + ymajorgrids=true, + bar width=3pt, + legend style={at={(0.90,0.95)}, anchor=north east, + legend image code/.code={ + \draw[fill=####1,draw=black] (0cm,-0.1cm) rectangle (0.4cm,0.1cm); + }, + }, + ] + \addplot[ybar,fill=blue, draw=blue, bar shift=-6pt] + table[x=benchmark, y=icc, col sep=comma] {\relativetable}; + \addlegendentry{ICC} + \addplot[ybar,fill=black, draw=black,, bar shift=-3pt] + table[x=benchmark, y=gcc, col sep=comma] {\relativetable}; + \addlegendentry{GCC} + \addplot[ybar,fill=gray, draw=gray, bar shift=0pt] + table[x=benchmark, y=clang, col sep=comma] {\relativetable}; + \addlegendentry{Clang} + \addplot[ybar,fill=red, draw=red, bar shift=3pt] + table[x=benchmark, y=aocc, col sep=comma] {\relativetable}; + \addlegendentry{AOCC} + \end{axis} + \end{tikzpicture} + } + \caption{O menor tempo de cada compilador para os benchmarks testados + (normalizado).} + \end{figure} + +\end{frame} + +\begin{frame} + \frametitle{Desempenho por aplicação} + + Dos 17 benchmarks: + + \begin{columns} + \column{.42\textwidth} + Vantagem do ICC: + \begin{itemize} + \item Pelo menos 40\%: 2 casos + \item Pelo menos 10\%: mais 3 casos + \item Pelo menos 5\%: mais 1 caso + \end{itemize} + + \pause + + \column{.42\textwidth} + Desvantagem do ICC: + \begin{itemize} + \item Pelo menos 40\%: 0 casos + \item Pelo menos 10\%: 4 casos + \item Pelo menos 5\%: mais 1 caso + \end{itemize} + \end{columns} + + \pause + + \vspace{0.4cm} + + Vantagem GCC: Pelo menos 10\% em 1 caso. + + \pause + + \vspace{0.4cm} + + Vantagem AOCC e Clang: Pelo menos 5\% em 1 caso. + +\end{frame} + +\begin{frame} + \frametitle{Análise do particle\_filter} + + Usando as flags reportadas com \texttt{-march=native}: + \begin{itemize} + \item \texttt{aocc -O3 -march=native} + \item \texttt{clang -O3 -march=native} + \item \texttt{gcc -O3 -funroll-loops -march=native} + \item \texttt{icx -O3 -march=native -fp-model=precise} + \end{itemize} + + \pause + + Maior vantagem do ICC dentre todos os benchmarks + \begin{itemize} + \item ICC é 42\% mais rápido que GCC + \item GCC é 24\% mais rápido que Clang e AOCC. + \end{itemize} +\end{frame} + + +\begin{frame}[fragile] + \frametitle{Análise do particle\_filter: segmento 1} + + \begin{lstlisting}[language=c] + for(x = 0; x < Nparticles; x++){ + weights[x] = weights[x]/sumWeights; + } + \end{lstlisting} + + \pause + + \begin{itemize} + \item Todos vetorizam, mas GCC usa registradores de 128 bits + + \pause + + \item A cada iteração: + \begin{itemize} + \item GCC: 8 vetores (16 elementos) + \item AOCC, Clang, ICC: 1 vetor (4 elementos) + \end{itemize} + \end{itemize} + +\end{frame} + +\begin{frame}[fragile] + \frametitle{Análise do particle\_filter} + + Padrão se repete em quase todo segmento do programa: + + \pause + + \begin{itemize} + \item Ao vetorizar, GCC se limita a registradores XMM + + \pause + + \begin{itemize} + \item Também em outros programas, mas nem todos + \item \texttt{-mprefer-vector-width=256} não ajuda: divide operações + em duas partes. + Em vez de\\ + \texttt{vmovupd \%ymm2, (\%r15)}\\ + produz um par\\ + \texttt{vextractf128 \$0x1, \%ymm2, 16(\%r15), vmovupd \%xmm2, (\%r15)}. + \end{itemize} + + \pause + + \item GCC mais agressivo no loop unrolling + \begin{itemize} + \item GCC: fator 4, 8 ou 16. + Típico é 8 elementos/vetores(16 elementos). + \item ICC: 1 vetor (4 elementos), 4 ou 8 elementos. + \item Glang e ICC: geralmente apenas um único elemento ou vetor. + \end{itemize} + + \pause + + \item Clang e AOCC geram códigos praticamente idênticos + \end{itemize} + +\end{frame} + +\begin{frame}[fragile] + \frametitle{Análise do particle\_filter: segmento 2} + + \begin{lstlisting}[language=c] + for(x = 0; x < lengthCDF; x++) { + if(CDF[x] >= value) { + index = x; + break; + } + } + \end{lstlisting} + + \pause + + Principal laço da seção que domina o tempo de execução. + \begin{itemize} + \item ICC 2.4 vezes rápido que GCC + \item GCC 1.4 vezes mais rápido que Clang/AOCC + \end{itemize} + +\end{frame} + +\begin{frame}[fragile] + \frametitle{Análise do particle\_filter: segmento 2} + + \begin{lstlisting}[language=c] + for(x = 0; x < lengthCDF; x++) { + if(CDF[x] >= value) { + index = x; + break; + } + } + \end{lstlisting} + + \begin{itemize} + \item Clang e AOCC: sem loop unrolling.\\ + 6 instruções, incluindo 1 leitura da memória, 1 comparação ponto + flutuante e 2 saltos condicionais. + + \item GCC: 8 elemementos. + 35 instruções, incluindo 8 leituras da memória, 8 comparações ponto + flutuante e 9 saltos condicionais. + + \item ICC: Vetoriza. Comparação de 16 elementos por iteração. + 12 instruções, incluindo 4 comparações de (vetores) ponto flutuante lidos da + memória e 2 saltos condicionais. + \end{itemize} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Análise do particle\_filter: segmento 2 --- código ICC} + + \begin{lstlisting}[basicstyle=\small,language={[x86masm]Assembler}] + vbroadcastsd %xmm0, %ymm1 + leaq (%rdi,%rdx,8), %r11 + xorl %eax, %eax + .LBB13_14: + vcmplepd (%r11,%rax,8), %ymm1, %ymm2 + vcmplepd 32(%r11,%rax,8), %ymm1, %ymm4 + vcmplepd 64(%r11,%rax,8), %ymm1, %ymm3 + vcmplepd 96(%r11,%rax,8), %ymm1, %ymm5 + vorpd %ymm4, %ymm2, %ymm6 + vorpd %ymm5, %ymm3, %ymm7 + vorpd %ymm6, %ymm7, %ymm6 + vtestpd %ymm6, %ymm6 + jne .LBB13_15 + addq $16, %rax + cmpq %r10, %rax + jbe .LBB13_14 + \end{lstlisting} + +\end{frame} + + +\begin{frame}[fragile] + \frametitle{Análise do particle\_filter: segmento 2 --- código ICC} + + \begin{lstlisting}[commentstyle=\color{blue}\textnormal\footnotesize,basicstyle=\footnotesize,language={[x86masm]Assembler}] +.LBB13_15: + vpackssdw %ymm4, %ymm2, %ymm0 ;ymm0=[0,1,4,5,2,3,6,7] 4B + vpermq $216, %ymm0, %ymm0 ;ymm0=[0,1,2,3,4,5,6,7] + vpackssdw %ymm5, %ymm3, %ymm1 ;ymm1=[8,9,12,13,10,11,14,15] 4B + vpermq $216, %ymm1, %ymm1 ;ymm1=[8,9,10,11,12,13,14,15] + vpackssdw %ymm1, %ymm0, %ymm0 ;ymm0=[0,1,2,3,8,9,10,11,4,5,6,7,12,13,14,15] 2B + vextracti128 $1, %ymm0, %xmm1 ;xmm1=[4,5,6,7,12,13,14,15] + vpacksswb %xmm1, %xmm0, %xmm0 ;xmm0=[0,1,2,3,8,9,10,11,4,5,6,7,12,13,14,15] 1B + vpshufd $216, %xmm0, %xmm0 ;xmm0=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] + vpmovmskb %xmm0, %ecx ;ecx =[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] 1b + tzcntl %ecx, %ecx + addq %rax, %rdx + addq %rcx, %rdx +\end{lstlisting} + +\end{frame} + + +\begin{frame} + \frametitle{Impacto da vetorização} + + Flags para desabilitar vetorização automática. + + \pause + + \begin{itemize} + \item ICC: \texttt{-no-vec}\\ + 42.7 \(\rightarrow\) 44.47: 4.2\% + + \pause + + \item GCC: \texttt{-fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize}\\ + 44.69 \(\rightarrow\) 45.06: 0.8\% + + \pause + + \item AOCC/Clang: \texttt{-fno-tree-vectorize -fno-tree-slp-vectorize} + \begin{itemize} + \item AOCC: 48.51 \(\rightarrow\) 49.13: 1.2\% + \item Clang: 47.75 \(\rightarrow\) 48.1: 0.7\% + \end{itemize} + \end{itemize} + +\end{frame} + +\begin{frame} + \frametitle{Impacto da vetorização} + ICC é o mais afetado + \begin{itemize} + + \pause + + \item Vantagem frente ao GCC: 4.7\% \(\rightarrow\) 1.3\% + \pause + \item particle\_filter: 41.2\% \(\rightarrow\) 11.5\% + \item srad: 36.2\% \(\rightarrow\) -37.1\% (pior que AOCC/Clang) + \pause + \item Vantagem ainda é expressiva: 10\% ou mais em 6 casos + \pause + \item \texttt{-no-vec} mantém vetorizações simples\\ + Primeiro segmento analisado:\\ + vetorização+loop-unrolling --- oito elementos por iteração + \end{itemize} + +\end{frame} + +\begin{frame} + \frametitle{Conclusão} + + Clang ligeiramente melhor que AOCC + + \vspace{0.5cm} + + GCC, ao vetorizar, pode usar registradores mais estreitos + + \vspace{0.5cm} + + Compilador da Intel capaz de vetorizações mais complexas + + \vspace{0.5cm} + + Vetorização automática é sua principal vantagem. + +\end{frame} + +\end{document} diff --git a/texto/resumo/apresentacao/uoy-beamer.sty b/texto/resumo/apresentacao/uoy-beamer.sty new file mode 100644 index 0000000000000000000000000000000000000000..c4ca1fcba65de38e810c6d045dc7002cc22081a8 --- /dev/null +++ b/texto/resumo/apresentacao/uoy-beamer.sty @@ -0,0 +1,688 @@ +% ---------------------------------------------------------------------- +% Date: 6 June 2022 +% Author: Roberto Metere +% Project: Beamer template for University of York +% +% Copyright (C) 2022 Roberto Metere +% ---------------------------------------------------------------------- +% +\mode<presentation> +\usepackage{lmodern} +\usepackage[sfdefault,scaled=.9,light]{FiraSans} +\usepackage{minibox} +\usepackage{varwidth} +\usepackage{etoolbox} +\usepackage{tikz} +\usepackage{amssymb} +\pdfsuppresswarningpagegroup=1 + +\usepackage{pgfplots} +\usepackage{pgfplotstable} + +% Tikz libraries +\usetikzlibrary{backgrounds,fit,positioning,calc} + +% Block transparency +%% \newcommand{\setblockbodyopacity}[1]{\def\blockbodyopacity{#1}} + +% Official font +% \setmainfont{Arial} % fontspec package +% \renewcommand{\familydefault}{\sfdefault} % use with helvet for Arial-like font +\renewcommand{\rmdefault}{phv} % Arial +\renewcommand{\sfdefault}{phv} % Arial + +% Default font size % scrextend +% \changefontsizes{9pt} + +% Official colours +\definecolor{uoydarkfg}{RGB}{104, 143, 3} +\definecolor{uoyblue}{RGB}{00, 00, 00} +\definecolor{uoybluealt}{RGB}{106, 144, 6} +\definecolor{uoydarkbg}{RGB}{0, 255, 0} +\definecolor{uoypurple}{RGB}{0, 0, 0} +\definecolor{orange}{RGB}{0, 132, 200} +\definecolor{uoyred}{RGB}{0, 255, 0} +\definecolor{uoygray}{RGB}{0, 0, 0} + +% Default [main] +\newcommand{\incolour}{} +\newcommand{\tabtype}{main} +\newcommand{\fsize}[1]{\fontsize{#1}{#1}} + +\colorlet{uoysubidcolour}{uoypurple} +\colorlet{uoyidcolour}{uoybluealt} +\colorlet{uoystrongcolour}{uoyblue} +\colorlet{uoylightcolour}{uoypurple} +\colorlet{uoytextcolor}{uoygray} + +\newcommand{\uoysubid}{} +\newcommand{\uoyid}{} +\newcommand{\uoysetidentity}[2]{ + \renewcommand{\uoysubid}{#1} + \renewcommand{\uoyid}{#2} +} + +\definecolor{canvascolor}{rgb}{1.0, 1.0, 1.0} +\colorlet{slidetitle}{uoybluealt} +\colorlet{slidetitles}{uoypurple} +\colorlet{quotesentence}{uoyblue} +\colorlet{blockexfg}{white} +\colorlet{blockexbg}{uoylightcolour} +\colorlet{dotscolour}{uoypurple} + +% Workaround for renewenvironment issues +\long\def\beamer@newenvnoopt#1#2#3#4{% + \expandafter\renewcommand\expandafter<\expandafter>\csname#1\endcsname[#2]{#3}%<- here + \expandafter\long\expandafter\def\csname end#1\endcsname{#4}% +} +\long\def\beamer@newenvopt#1#2[#3]#4#5{% + \expandafter\renewcommand\expandafter<\expandafter>\csname#1\endcsname[#2][#3]{#4}%<- here + \expandafter\long\expandafter\def\csname end#1\endcsname{#5}% +} + +% Distance between title and content +\newlength{\frametitlemargin} +\setlength{\frametitlemargin}{0mm} + +\newlength{\blockbottommargin} +\setlength{\blockbottommargin}{2mm} +\newlength{\blocktopmargin} +\setlength{\blocktopmargin}{0mm} + +\newcommand{\noframetitle}[1][-9mm]{\vskip #1} +\newcommand{\framesingletitle}[2][16mm]{{\vskip #1}\noindent{\begin{center}\color{slidetitles} {\Huge \textbf #2}\end{center}}{\vskip 2mm}{\vskip \frametitlemargin}} +\newcommand{\emptyframetitle}{\frametitle{\strut}} + +% To gain partially transparent blocks +\ifx\blockbodyopacity\@empty\else + \def\blockbodyopacity{1} +\fi +\newlength{\blockheightcorr} +\setlength{\blockheightcorr}{-3.16mm} +\newlength{\blockwidthcorr} +\setlength{\blockwidthcorr}{2.48mm} +\newlength{\blockyshcorr} +\setlength{\blockyshcorr}{-0.53mm} +\newenvironment{blockminipage}[2]{% +\colorlet{bodycolour}{#1}% +\@ifundefined{bodyopacity}{\newcommand{\bodyopacity}{#2}}{\renewcommand{\bodyopacity}{#2}}% +\begin{tikzpicture}[every node/.style={inner sep=0,outer sep=0}]% +\node [text width=\textwidth] (childblock) \bgroup% +\begin{minipage}{\textwidth}% +}{% +\end{minipage}% +\egroup;% +\begin{scope}[on background layer] + \path + let + \p{n}=(childblock.north), + \p{s}=(childblock.south), + \p{w}=(childblock.west), + \p{e}=(childblock.east), + \n{h}={\y{n}-\y{s}+(\blockheightcorr)}, + \n{w}={\x{e}-\x{w}+\blockwidthcorr} + in + node [rectangle, draw=none, fill=bodycolour, yshift=\blockyshcorr, fill opacity=\bodyopacity, overlay, anchor=center, minimum width=\n{w}, minimum height=\n{h}] {}; +\end{scope} +\end{tikzpicture}% +} + + +\renewenvironment<>{block}[2][uoyblue]{% + \vskip \blocktopmargin% + \begin{blockminipage}{white}{0}% + \begin{actionenv}#3% + \def\insertblocktitle{\hspace{.3em}\bfseries#2}% + \par% + \mode<presentation>{% + \setbeamercolor{block title}{fg=uoytextcolor!80!white,bg=} + \setbeamercolor{block body}{fg=uoytextcolor!90!white,bg=} + \setbeamercolor{itemize item}{fg=#1} + \setbeamercolor{itemize subitem}{fg=#1} + \setbeamertemplate{itemize item}[triangle] + + \setbeamertemplate{itemize subitem}[circle] + \setbeamercolor{local structure}{fg=block title.bg}}% + \usebeamertemplate{block begin} + {\vspace{-1em}\color{black!40!white}\tiny\hrulefill} + } + {\par% + \usebeamertemplate{block end}% + \end{actionenv}\vskip \blockbottommargin% + \end{blockminipage}% + } + + +\renewenvironment<>{cleanblock}[2][uoypurple]{% + \vskip \blocktopmargin% + \begin{blockminipage}{white}{0}% + \begin{actionenv}#3% + \def\insertblocktitle{\bfseries#2}% + \par% + \mode<presentation>{% + \setbeamercolor{block title}{fg=uoytextcolor!80!white,bg=} + \setbeamercolor{block body}{fg=uoytextcolor!90!white,bg=} + \setbeamercolor{itemize item}{fg=#1} + \setbeamercolor{itemize subitem}{fg=#1} + \setbeamertemplate{itemize item}[triangle] + \setbeamertemplate{itemize subitem}[circle] + \setbeamercolor{local structure}{fg=block title.bg}}% + \usebeamertemplate{block begin}} + {\par% + \usebeamertemplate{block end}% + \end{actionenv}\vskip \blockbottommargin% + \end{blockminipage}% + } + + +\renewenvironment<>{whiteblock}[2][white!40!black]{% + \vskip \blocktopmargin% + \begin{blockminipage}{white}{\blockbodyopacity}% + \begin{actionenv}#3% + \def\insertblocktitle{\bfseries#2}% + \par% + \mode<presentation>{% + \setbeamercolor{block title}{fg=white!10!black,bg=white} + \if\blockbodyopacity1 + \setbeamercolor{block body}{fg=black,bg=white} + \else + \setbeamercolor{block body}{fg=black,bg=} + \fi + \setbeamercolor{itemize item}{fg=#1} + \setbeamercolor{itemize subitem}{fg=#1} + \setbeamertemplate{itemize item}[triangle] + \setbeamertemplate{itemize subitem}[circle] + \setbeamercolor{local structure}{fg=#1}}% + \usebeamertemplate{block begin}} + {\par% + \usebeamertemplate{block end}% + \end{actionenv}\vskip \blockbottommargin% + \end{blockminipage}% + } + + +\renewenvironment<>{grayblock}[2][white!50!black]{% + \vskip \blocktopmargin% + \begin{blockminipage}{black!20!white}{\blockbodyopacity}% + \begin{actionenv}#3% + \def\insertblocktitle{#2}% + \par% + \mode<presentation>{% + \setbeamercolor{block title}{fg=white,bg=white!50!black} + \if\blockbodyopacity1 + \setbeamercolor{block body}{fg=black,bg=white!90!black} + \else + \setbeamercolor{block body}{fg=black,bg=} + \fi + \setbeamercolor{itemize item}{fg=#1} + \setbeamercolor{itemize subitem}{fg=#1} + \setbeamertemplate{itemize item}[triangle] + \setbeamertemplate{itemize subitem}[circle] + \setbeamercolor{local structure}{fg=block title.bg}}% + \usebeamertemplate{block begin}} + {\par% + \usebeamertemplate{block end}% + \end{actionenv}\vskip \blockbottommargin% + \end{blockminipage}% + } + +\renewenvironment<>{exampleblock}[2][green!65!black]{% + \vskip \blocktopmargin% + \begin{blockminipage}{green!40!white}{\blockbodyopacity}% + \begin{actionenv}#3% + \def\insertblocktitle{#2}% + \par% + \mode<presentation>{% + \setbeamercolor{block title example}{fg=white,bg=green!65!black} + \if\blockbodyopacity1 + \setbeamercolor{block body example}{fg=black,bg=green!10!white} + \else + \setbeamercolor{block body example}{fg=black,bg=} + \fi + \setbeamercolor{itemize item}{fg=#1} + \setbeamercolor{itemize subitem}{fg=#1} + \setbeamertemplate{itemize item}[triangle] + \setbeamertemplate{itemize subitem}[circle] + \setbeamercolor{local structure example}{use=block title,% + fg=block title.bg}}% + \usebeamertemplate{block example begin}} + {\par% + \usebeamertemplate{block example end}% + \end{actionenv}\vskip \blockbottommargin% + \end{blockminipage}} + +\renewenvironment<>{alertblock}[2][uoyred!75!black]{% + \vskip \blocktopmargin% + \begin{blockminipage}{uoyred!40!white}{\blockbodyopacity}% + \begin{actionenv}#3% + \def\insertblocktitle{#2}% + \par% + \mode<presentation>{% + \setbeamercolor{block title alerted}{fg=white,bg=uoyred} + \if\blockbodyopacity1 + \setbeamercolor{block body alerted}{fg=uoytextcolor,bg=uoyred!10!white} + \else + \setbeamercolor{block body alerted}{fg=uoytextcolor,bg=} + \fi + \setbeamercolor{itemize item}{fg=#1} + \setbeamercolor{itemize subitem}{fg=#1} + \setbeamertemplate{itemize item}[triangle] + \setbeamertemplate{itemize subitem}[circle] + \setbeamercolor{local structure}{use=block title,% + fg=block title.bg}}% + \usebeamertemplate{block alerted begin}% + }{\par% + \usebeamertemplate{block alerted end}% + \end{actionenv}\vskip \blockbottommargin% + \end{blockminipage}} + +% A few enviroments +\newenvironment<>{termblock}[2][green!90!black]{% + \vskip \blocktopmargin% + \begin{blockminipage}{black}{\blockbodyopacity}% + \begin{actionenv}#3% + \def\insertblocktitle{\bfseries#2}% + \par% + \mode<presentation>{% + \setbeamercolor{block title}{fg=green!80!black,bg=black} + \if\blockbodyopacity1 + \setbeamercolor{block body}{fg=white,bg=white!20!black} + \else + \setbeamercolor{block body}{fg=white,bg=} + \fi + \setbeamercolor{itemize item}{fg=#1} + \setbeamercolor{itemize subitem}{fg=#1} + \setbeamertemplate{itemize item}[triangle] + \setbeamertemplate{itemize subitem}[circle] + }% + \usebeamertemplate{block begin}} + {\par\usebeamertemplate{block end}\end{actionenv}\vskip \blockbottommargin\end{blockminipage}} + +\newenvironment<>{problock}[2][green!80!black]{% + \vskip \blocktopmargin% + \begin{blockminipage}{green!3!white}{\blockbodyopacity}% + \begin{actionenv}#3% + \def\insertblocktitle{#2}% + \par% + \mode<presentation>{% + \setbeamercolor{block title}{fg=green!80!black,bg=green!5!white} + \if\blockbodyopacity1 + \setbeamercolor{block body}{fg=uoydarkfg,bg=green!1!white} + \else + \setbeamercolor{block body}{fg=uoydarkfg,bg=} + \fi + \setbeamercolor{itemize item}{fg=#1} + \setbeamercolor{itemize subitem}{fg=#1} + \setbeamertemplate{itemize item}[triangle] + \setbeamertemplate{itemize subitem}[circle] + }% + \usebeamertemplate{block begin}} + {\par\usebeamertemplate{block end}\end{actionenv}\vskip \blockbottommargin\end{blockminipage}} + +\newenvironment<>{conblock}[2][red!80!black]{% + \vskip \blocktopmargin% + \begin{blockminipage}{red!3!white}{\blockbodyopacity}% + \begin{actionenv}#3% + \def\insertblocktitle{#2}% + \par% + \mode<presentation>{% + \setbeamercolor{block title}{fg=red!80!black,bg=red!5!white} + \if\blockbodyopacity1 + \setbeamercolor{block body}{fg=uoydarkfg,bg=red!1!white} + \else + \setbeamercolor{block body}{fg=uoydarkfg,bg=} + \fi + \setbeamercolor{itemize item}{fg=#1} + \setbeamercolor{itemize subitem}{fg=#1} + \setbeamertemplate{itemize item}[triangle] + \setbeamertemplate{itemize subitem}[circle] + }% + \usebeamertemplate{block begin}} + {\par\usebeamertemplate{block end}\end{actionenv}\vskip \blockbottommargin\end{blockminipage}} + +\newenvironment<>{yellowblock}[2][yellow!90!black]{% + \vskip \blocktopmargin% + \begin{blockminipage}{yellow!40!white}{\blockbodyopacity}% + \begin{actionenv}#3% + \def\insertblocktitle{#2}% + \par% + \mode<presentation>{% + \setbeamercolor{block title}{fg=yellow!20!black,bg=yellow!60!white} + \if\blockbodyopacity1 + \setbeamercolor{block body}{fg=black,bg=yellow!25!white} + \else + \setbeamercolor{block body}{fg=black,bg=} + \fi + \setbeamercolor{itemize item}{fg=#1} + \setbeamercolor{itemize subitem}{fg=#1} + \setbeamertemplate{itemize item}[triangle] + \setbeamertemplate{itemize subitem}[circle] + }% + \usebeamertemplate{block begin}} + {\par\usebeamertemplate{block end}\end{actionenv}\vskip \blockbottommargin\end{blockminipage}} + +\newenvironment<>{blueblock}[2][uoyblue]{% + \vskip \blocktopmargin% + \begin{blockminipage}{uoyblue!40!white}{\blockbodyopacity}% + \begin{actionenv}#3% + \def\insertblocktitle{#2}% + \par% + \mode<presentation>{% + \setbeamercolor{block title}{fg=white,bg=uoyblue} + \if\blockbodyopacity1 + \setbeamercolor{block body}{fg=uoytextcolor,bg=uoyblue!20!white} + \else + \setbeamercolor{block body}{fg=uoytextcolor,bg=} + \fi + \setbeamercolor{itemize item}{fg=#1} + \setbeamercolor{itemize subitem}{fg=#1} + \setbeamertemplate{itemize item}[triangle] + \setbeamertemplate{itemize subitem}[circle] + }% + \usebeamertemplate{block begin}} + {\par\usebeamertemplate{block end}\end{actionenv}\vskip \blockbottommargin\end{blockminipage}} + +\setbeamertemplate{blocks}[default] + +\setbeamerfont{block title}{size=\normalsize\rule{0mm}{\f@size pt}\strut\ifx\insertblocktitle\@empty{\vspace{-2mm}\vspace{-\f@size pt}}\fi} +\setbeamercolor{block title}{fg=white,bg=uoyblue} +\setbeamercolor{block body}{fg=black,bg=uoyblue!20!white} + +\setbeamercolor{block title example}{fg=white,bg=green} +\setbeamercolor{block body example}{fg=black,bg=green!20!white} + +\setbeamercolor{block title alerted}{fg=white,bg=uoypurple} +\setbeamercolor{block body alerted}{fg=black,bg=uoypurple!20!white} + +% Title-Command +\newcommand{\fcbox}[2]{{\fcolorbox{#1}{#1}{#2}}} + +\newcommand{\insertuoytab}[1]{ + \begin{tikzpicture}[remember picture, overlay] + \node [anchor=north east, inner sep=0, scale=1.4] at ([xshift=-3mm, yshift=-4mm]current page.north east) + {\pgfuseimage{#1}}; + \end{tikzpicture} +} + +\newcommand{\insertuoyidentity}{ + \begin{tikzpicture}[remember picture, overlay] + \fsize{1.7mm} + \color{uoyblue} + \node [anchor=north east, inner sep=0] at ([xshift=-3mm, yshift=-16.5mm]current page.north east) + { \begin{hyphenrules}{nohyphenation}% + \textbf{{\uoysubid} {\uoyid}} + \end{hyphenrules}% + }; + \end{tikzpicture} +} + +\newcommand{\insertuoyidentityfaculty}{ + \begin{tikzpicture}[remember picture, overlay] + \node [anchor=south west, inner sep=0] at ([xshift=0.056\paperwidth, yshift=0.05\paperheight]current page.south west) + { + \def\thisblockfontheight{2.5mm} + \fboxrule=0pt + \fboxsep=0.8mm + \fsize{\thisblockfontheight} + \color{white} + \ifx\uoysubid\@empty\else\fcbox{uoydarkfg}{ + \textbf{\rule{0mm}{\thisblockfontheight}\strut\uoysubid} + }\fi\fcbox{uoyidcolour}{ + \textbf{\rule{0mm}{\thisblockfontheight}\strut\uoyid\ } + }% + }; + \end{tikzpicture} +} + +% TAB - Synced width and height (uoy title relates to it) +\pgfdeclareimage[interpolate=true,height=8mm]{uoy-tab}{images/erad-logo.pdf} +\pgfdeclareimage[interpolate=true,height=8mm]{uoy-tab-institute}{images/erad-logo.pdf} + +% Cover +\pgfdeclareimage[interpolate=true,width=\paperwidth]{bottomtitle}{images/lawcg22-araucaria.pdf} +\pgfdeclareimage[interpolate=true,width=\paperwidth]{bottomtitledarktheme}{images/lawcg22-araucaria.pdf} +\newcommand{\bgimg}{bottomtitle} + +% Unknown option +\DeclareOption*{ + \PackageWarning{uoy-beamer}{Unknown option '\CurrentOption'} +} + +% Clear canvas +\def\whitebg{1} +\DeclareOption{uoynobg}{ +\def\whitebg{0} +} + +% Clear canvas +\def\whitebg{1} +\DeclareOption{uoybglogo}{ +\def\whitebg{0} +\renewcommand{\bgimg}{bottomtitle} +} + +% Dark theme +\def\darkbg{0} +\DeclareOption{darktheme}{ +\def\darkbg{1} +\def\whitebg{0} +\colorlet{canvascolor}{uoydarkbg} +\colorlet{uoystrongcolour}{uoyblue!70!white} +\colorlet{uoylightcolour}{uoypurple!80!white} +\colorlet{uoytextcolor}{white} +\colorlet{slidetitle}{uoybluealt!60!white} +\colorlet{quotesentence}{uoyblue!70!white} +\colorlet{dotscolour}{white} +\renewcommand{\bgimg}{bottomtitledarktheme} +\pgfdeclareimage[interpolate=true,height=8mm]{uoy-tab}{images/uoy-logo-white.pdf} +\pgfdeclareimage[interpolate=true,height=8mm]{uoy-tab-institute}{images/uoy-logo-white.pdf} +} + +% Coloured logo +\DeclareOption{colour}{ +\renewcommand{\incolour}{_colour} +} +\DeclareOption{color}{ +\renewcommand{\incolour}{_colour} +} + +% MAIN/CORPORATE (default) +\DeclareOption{main}{} + +% TECH colours +% \DeclareOption{tech}{ +% \renewcommand{\tabtype}{tech} +% +% \colorlet{uoystrongcolour}{uoyblue} +% \colorlet{uoylightcolour}{uoybluelight} +% \colorlet{uoyidcolour}{uoyblue} +% \colorlet{slidetitle}{uoyblue} +% \colorlet{slidetitles}{uoybluelight} +% } + +% -- end of options +\ProcessOptions\relax + +% Removes nav in pages +\usenavigationsymbolstemplate{} + +% Colours +\setbeamercolor{normal text}{fg=uoytextcolor} + +\setbeamercolor{section name}{fg=slidetitle} +\setbeamercolor{section in toc}{fg=slidetitle} +\setbeamercolor{subsection name}{fg=slidetitle} +\setbeamercolor{subsection in toc}{} + + +% Table of content +\let\oldtoc\tableofcontents +\renewcommand{\tableofcontents}{ + \begin{minipage}{\textwidth} + \oldtoc + \end{minipage} +} + + +\newcommand{\quotesentence}[2][1em]{\vskip #1 \begin{minipage}{\textwidth}\begin{center} \color{quotesentence} \textbf{\LARGE #2} \end{center}\end{minipage}} + +\newcommand{\logobg}[1]{ + \begin{tikzpicture}[remember picture, overlay] + \node [anchor=south west, inner sep=0pt, opacity=.5, scale=.32, yshift=-1.5cm, xshift=-6cm] at (current page.south west) + {\pgfuseimage{#1}}; + \end{tikzpicture} +} + +\setbeamercolor{background canvas}{bg=canvascolor} +\setbeamertemplate{background}{ + \ifnumequal{\whitebg}{1}{}{ + \ifnumequal{\c@framenumber}{1}{% + % First frame + \logobg{\bgimg} + }{% + \ifnumequal{\c@framenumber}{\inserttotalframenumber}{ + % Last frame + \logobg{\bgimg} + }{% + % Other frames + %% \logobg{\bgimg} + } + }% + } +} + +\newcommand{\inserttopline}{% +\begin{tikzpicture}[overlay, remember picture] + \fill[fill=uoyblue] (current page.north west) rectangle ($(current page.north east)+(0,-0.2)$); +\end{tikzpicture}% +} + +\setbeamertemplate{title page} +{ + \inserttopline + \insertuoytab{uoy-tab} +% \insertuoyidentityfaculty + \begin{center} + \vskip 20mm + { + \fboxrule=0pt + \fboxsep=1mm + \begin{minipage}[b][\height][b]{\dimexpr\textwidth-2\fboxsep-2\fboxrule\relax} + \centering + \vspace{1cm} + { \usebeamerfont{title}\LARGE\color{uoylightcolour}\textbf{\inserttitle} } + \ifx\insertsubtitle\@empty + \else + \vspace{-1cm} + \tikz \fill [verde] (0,0) rectangle (\textwidth,0.02); + \begin{minipage}{\dimexpr\textwidth-6\fboxsep-6\fboxrule\relax} + \centering + { \usebeamerfont{subtitle}\color{uoylightcolour}\rule{0mm}{\f@size pt}\strut{ \insertsubtitle} } + \end{minipage} + \fi + \vspace{1mm} + \end{minipage} + } + \vskip 4mm + { + \fboxrule=0pt + \fboxsep=1mm + \begin{minipage}[b][\height][b]{\dimexpr\textwidth-2\fboxsep-2\fboxrule\relax} + \vspace{2mm} + \centering + \ifx\insertauthor\@empty + \else + { \usebeamerfont{author}\large\color{uoytextcolor}{\insertauthor} } + \fi + \ifx\insertinstitute\@empty + \else + \vskip 2mm +% \fcbox{white}{ + \begin{minipage}{\dimexpr\textwidth-6\fboxsep-6\fboxrule\relax} + + \centering + { \usebeamerfont{author}\small\color{uoytextcolor}\rule{0mm}{\f@size pt}\insertinstitute } + + \end{minipage} + +% } % fcbox + + \fi + \vspace{1mm} + %% \vspace{.4cm}\hspace{-12.4cm}\includegraphics[scale=.3]{images/ufpr-logo.pdf} + \end{minipage} + } + + %% \ifx\insertdate\@empty + %% \else + %% \begin{tikzpicture}[remember picture, overlay] + + %% \node [anchor=south east, inner sep=0pt] at ([yshift=3mm, xshift=-3mm]current page.south east) + %% { \small\color{uoyblue}\insertdate }; + %% \end{tikzpicture} + + %% \fi + + \vspace{.5cm} + \begin{center} + \textbf{\color{uoyblue}\insertdate} + \end{center} + \end{center} +} + + +\setbeamercolor{headline}{fg=white} +\setbeamertemplate{headline}{ + \inserttopline + \insertuoytab{uoy-tab-institute} + \insertuoyidentity + \vskip 17mm% +% \begin{center}% +% \ifx\insertframetitle\@empty + \parbox[t]{\paperwidth}{\strut}% +% \else +% \parbox[t]{\paperwidth}{\strut\color{dotscolour}\dotfill}% +% \fi +% \end{center} +} + +\setbeamercolor{frametitle}{fg=slidetitle} +\setbeamertemplate{frametitle}{ + \vskip -16mm + \noindent\begin{minipage}{.77\textwidth} + \textbf{\color{uoylightcolour}\Large\strut\insertframetitle} + \end{minipage} + \vskip \frametitlemargin + \vfill +} + +\setbeamercolor{footline}{fg=uoystrongcolour} +\setbeamertemplate{footline}{ + \vfill + \centerline{\parbox[t]{\paperwidth}{\strut\color{dotscolour}\dotfill}}% + \leavevmode% + \hbox{% + \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,left]{}% + \hspace*{2ex}\bfseries \insertshortauthor + \end{beamercolorbox}% + \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,center]{}% + \bfseries \insertshorttitle\ \insertshortdate + \end{beamercolorbox}% + \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,right]{}% + \bfseries \hspace*{2ex} + \end{beamercolorbox} + }% + \begin{tikzpicture}[remember picture, overlay] + \fill[orange,anchor=south east, inner sep=0pt, yshift=-1mm, xshift=-14mm] (0,0) rectangle (7mm,5mm); + \node [anchor=south east, inner sep=0pt] at ([yshift=-0.3mm, xshift=-9.7mm]current page.south east) + { \makebox[0.5mm]{\color{white!91!uoypurple}\large\bfseries\strut\insertframenumber{}} }; + \end{tikzpicture} + \vskip0pt% +} + +% Additional stuff +\newcommand{\code}[1]{{\lstset{basicstyle=\large\ttfamily}\lstinline!#1!}} + +\mode +<all> + diff --git a/texto/resumo/apresentacao/windowsmk b/texto/resumo/apresentacao/windowsmk new file mode 100644 index 0000000000000000000000000000000000000000..1ef71cfbbe5c51c7e7cc282f668f00aa1d1ac954 --- /dev/null +++ b/texto/resumo/apresentacao/windowsmk @@ -0,0 +1,10 @@ +function compileTex (){ + pdflatex --interaction=nonstopmode $1 + bibtex $(basename $1) + pdflatex $(basename $1) + pdflatex $(basename $1) + rm $(basename $1).{aux,bbl,blg,log,run.xml,toc,snm,out,nav,bib} + + +} +compileTex $@