% \iffalse meta-comment
% !TEX program  = pdfLaTeX
%<*internal>
\iffalse
%</internal>
%<*readme>
-----------------------------------------------------------------------------------------------------
fei --- Class for the creation of academic works under the typographic rules of FEI University Center
Author: Douglas De Rizzo Meneghetti
E-mail: douglasrizzo@fei.edu.br

Released under the LaTeX Project Public License v1.3c or later
See http://www.latex-project.org/lppl.txt
-----------------------------------------------------------------------------------------------------

fei is a class created by graduate students and LaTeX enthusiasts that allow students from FEI University Center to create their academic works, be it a monograph, masters dissertation or phd thesis, under the typographic rules of the institution. The class makes it possible to create a full academic work, supporting functionalities such as cover, title page, catalog entry, dedication, summary, lists of figures, tables, algorithms, acronyms and symbols, multiple authors, index, references, appendices and attachments.

fei is loosely based in the Brazilian National Standards Organization (Associação Brasileira de Normas Técnicas, ABNT) standards for the creation of academic works, such as ABNT NBR 10520:2002 (Citations) and ABNT NBR 6023:2002 (Bibligraphic References).

In the manual, users will find detailed information regarding the class commands, environments and best practices to create an academic text of good quality. We also made available a few template files which students may use as a starting point for their texts.

##License
Released under the LaTeX Project Public License v1.3c or later
See http://www.latex-project.org/lppl.txt

##Latest releases and version control
To get the newest version of the class, as well as to know the changes we are doing to the class and its functionalities, visit https://douglasrizzo.github.io/Classe-Latex-FEI/.
%</readme>
%<*internal>
\fi
\def\nameofplainTeX{plain}
\ifx\fmtname\nameofplainTeX\else
  \expandafter\begingroup
\fi
%</internal>
%<*install>
\input docstrip.tex
\keepsilent
\askforoverwritefalse
\preamble
-----------------------------------------------------------------------------------------------------
fei --- Class for the creation of academic works under the typographic rules of FEI University Center
Author: Douglas De Rizzo Meneghetti
E-mail: douglasrizzo@fei.edu.br

Released under the LaTeX Project Public License v1.3c or later
See http://www.latex-project.org/lppl.txt
-----------------------------------------------------------------------------------------------------
\endpreamble
\postamble

Copyright (C) 2015 by Douglas De Rizzo Meneghetti <douglasrizzo@fei.edu.br>

This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License (LPPL), either
version 1.3c of this license or (at your option) any later
version.  The latest version of this license is in the file:

http://www.latex-project.org/lppl.txt

This work is "maintained" (as per LPPL maintenance status) by
Douglas De Rizzo Meneghetti.

This work consists of the file  fei.dtx,
and the derived files           fei.pdf and
                                fei.cls.

\endpostamble
\usedir{tex/latex/fei}
\generate{
  \file{\jobname.cls}{\from{\jobname.dtx}{class}}
}
%</install>
%<install>\endbatchfile
%<*internal>
\usedir{source/latex/fei}
\generate{
  \file{\jobname.ins}{\from{\jobname.dtx}{install}}
}
\nopreamble\nopostamble
\usedir{doc/latex/fei}
\generate{
  \file{README.txt}{\from{\jobname.dtx}{readme}}
}
\ifx\fmtname\nameofplainTeX
  \expandafter\endbatchfile
\else
  \expandafter\endgroup
\fi
%</internal>
% \fi
% \iffalse
%<*driver>
\documentclass[rascunho,xindy]{\jobname}
\usepackage{multicol}

\author{Douglas De Rizzo Meneghetti}
\title{Classe \LaTeX{} da FEI para criação de trabalhos acadêmicos}
\subtitulo{de acordo com o guia de 2015 da biblioteca}
% \advisor{Donald Knuth}
% \curso{Formatação e Tipografia}

\makeindex
\makeglossaries

\newacronym{fei}{FEI}{Fundação Educacional Inaciana}
\newacronym{abnt}{ABNT}{Associação Brasileira de Normas Técnicas}
\newacronym{abntex}{abn\TeX}{\textit{Absurd Norms for \TeX}}
\newacronym{cqd}{CQD}{como se queria demonstrar}
\newacronym{qed}{QED}{\textit{quod erat demonstrandum}}
\newacronym{ctan}{CTAN}{\textit{Comprehensive \TeX{} Archive Network}}

\newglossaryentry{h}{type=symbols, name={\ensuremath{H}}, sort=h, description={Esquema}}
\newglossaryentry{t}{type=symbols, name={\ensuremath{t}}, sort=t, description={Geração}}
\newglossaryentry{m}{type=symbols, name={\ensuremath{m}}, sort=m, description={número de cadeias pertences a \gls{h} na geração \gls{t}}}
\newglossaryentry{f}{type=symbols, name={\ensuremath{f}}, sort=f, description={aptidão média observada de \gls{h}}}
\newglossaryentry{at}{type=symbols, name={\ensuremath{a_t}}, sort=a, description={aptidão média observada na geração \gls{t}}}
\newglossaryentry{p}{type=symbols, name={\ensuremath{p}}, sort=p, description={probabilidade de ruptura de \gls{h}}}
\newglossaryentry{oh}{type=symbols, name={\ensuremath{o}}, sort=o, description={ordem de \gls{h}}}
\newglossaryentry{l}{type=symbols, name={\ensuremath{l}}, sort=l, description={tamanho do código}}
\newglossaryentry{pm}{type=symbols, name={\ensuremath{p_m}}, sort=pm, description={probabilidade de mutação}}
\newglossaryentry{pc}{type=symbols, name={\ensuremath{p_c}}, sort=pc, description={probabilidade de cruzamento}}
\newglossaryentry{delta}{type=symbols, name={\ensuremath{\delta}}, sort=delta, description={menor comprimento de \gls{h}}}

\begin{document}

\maketitle

\begin{folhaderosto}
Classe \LaTeX{} da FEI para criação de trabalhos acadêmicos de acordo com o guia de 2015 da biblioteca
\end{folhaderosto}
\fichacatalografica
\folhadeaprovacao
\dedicatoria{Esta dedicatória está aqui para que a função de dedicatória seja testada.}
\begin{agradecimentos}
Agradecemos a Donald Knuth pela criação do \TeX{}, a Leslie Lamport pelo \LaTeX{} e a toda a comunidade de desenvolvedores que continua dando suporte e criando pacotes para melhorar a qualidade dos documentos escritos.
\end{agradecimentos}
\epigrafe{A good scientist is a person with original ideas. A good engineer is a person who makes a design that works with as few original ideas as possible. There are no prima donnas in engineering.}{Freeman Dyson \nocite{dyson_disturbing_1979}}

\begin{resumo}
O \TeX{} é um sistema de formatação de textos baseado em uma \emph{mark-up language}, criado em 1978 por Donald Knuth e ampliado com uma série de macros por Leslie Lamport, dando à luz o \LaTeX{}. Utilizado com frequência na área acadêmica, foram criadas classes em \LaTeX{} para satisfazer às regras de formatação dos mais variados órgãos, sociedades, institutos e universidades. Baseada nos padrões da ABNT, a biblioteca da FEI criou seu próprio guia para formatação de trabalhos acadêmicos, o qual originou, extra-oficialmente, a classe \texttt{fei.cls}. Neste guia, os usuários serão guiados no uso dessa classe, desde a criação de elementos pré-textuais (capa, folha de rosto, ficha catalográfica, epígrafe, dedicatória, sumário, listas de figuras, tabelas, algoritmos, siglas e símbolos), passando pelo corpo do texto e elementos pós-textuais (índice remissivo, referências bibliográficas, apêndices e anexos) e terminando com uma explicação referente à instalação dos pré-requisitos e compilação de um trabalho dissertativo com todos os recursos que a classe pode oferecer.
\keywords{\LaTeX{}. FEI.}
\end{resumo}

\begin{abstract}
Abstract goes here.
\keywords{Keywords. Go. Here.}
\end{abstract}

\listoffigures
\listoftables
\listofalgorithms
\listoftheorems
\printglossaries
\tableofcontents

\chapter{INTRODUÇÃO}

Inspirado nas diversas normas da \index{ABNT}\gls{abnt} para produção de trabalhos acadêmicos, a biblioteca do Centro Universitário da \index{FEI}\gls{fei} criou um guia, cuja última versão data de 2015, o qual dita as regras que os alunos devem seguir na formatação de suas monografias, dissertações e teses. Guiados por este manual (e mais uma dezena de dissertações corrigidas pelas bibliotecárias), nasceu o arquivo \texttt{fei.cls}, uma classe de documentos \LaTeX{} especializada na criação de trabalhos acadêmicos para alunos da \gls{fei}. Com ela, os alunos podem utilizar seus conhecimentos em \LaTeX{} para criar seus documentos, deixando a formatação complexa do documento a cargo da classe.

A escrita da classe que formata o texto foi realizada tendo-se como referência principal o guia disponível pela biblioteca (nesta versão, o guia utilizado desde 2015). Trabalhos corrigidos e reuniões subsequentes com as bibliotecárias também serviram de referencial para refinar algumas funcionalidades da classe, assim como realizar adições não cobertas pelo guia, como algoritmos e teoremas.

Para facilitar a escrita do texto final, alguns comandos/ambientes já existentes foram modificados e novos comandos e ambientes foram adicionados. Desta forma, espera-se que o autor tenha menos trabalho com a formatação do texto do que com a escrita do mesmo.

O texto é organizado da seguinte forma: a seção \ref{chap:instalacao} lista os passos para instalação do \LaTeX{}, da classe e de suas dependências nos principais sistemas operacionais; a seção \ref{chap:comandos} enumera os comandos e ambientes, tanto novos quanto redefinidos do \LaTeX{}, necessários para a criação do corpo do trabalho acadêmico; a seção \ref{chap:referencia} explica o uso do abn\TeX{} e exemplifica o uso de seus diversos comandos de citação; o capítulo \ref{chap:indice} disserta sobre os programas necessários para a criação do índice remissivo e os comandos utilizados para se indexar termos no decorrer do texto; a seção \ref{chap:listas} explica ao autor como criar listas de abreviaturas e símbolos; a seção \ref{chap:compilando} ensina a compilar um projeto utilizando a classe \texttt{fei.cls} com todas as suas funcionalidades. O apêndice A explica cada um dos arquivos criados pelo processo de compilação, com o propósito de instruir e exemplificar o uso de um apêndice. Já o apêndice B disponibiliza uma lista dos principais símbolos matemáticos disponíveis no \TeX{}.

\section{INSTALAÇÃO} \label{chap:instalacao}

Esta seção guia o leitor na instalação do \LaTeX{}, da classe e dos diferentes pacotes e programas necessários para utilizar todas as funcionalidades dela.

\subsection{Windows}

A opção mais simples para instalação do \LaTeX{} no Windows é o aplicativo Mik\TeX{} (\url{http://miktex.org}). Tenha certeza de escolher a opção que permite ao software baixar pacotes em falta do repositório online e, na primeira vez que compilar seu projeto, todos os pacotes serão baixados. Tanto a classe da FEI como todas suas dependências estão disponíveis no Mik\TeX{}.

Alternativamente, é possível utilizar o gerenciador de pacotes do Mik\TeX{} para selecionar os pacotes a serem baixados. A lista destes pacotes está disponível na seção \ref{sec:dependencias}.

\subsection{Linux}

O \LaTeX~é frequentemente disponibilizado para as maiores distribuições Linux por meio de seus gerenciadores de pacotes. No Ubuntu, por exemplo, é necessária a instalação do \TeX{} Live através do \texttt{apt-get}. O usuário pode optar pela instalação completa, através do pacote \texttt{texlive-full}, ou instalar apenas os seguintes pacotes necessários:

\begin{enumerate}
\item \texttt{texlive}: pacotes essenciais do \TeX{} Live;
\item \texttt{texlive-science}: instala pacotes científicos, como \texttt{algorithm2e} e \texttt{mathtools};
\item \texttt{texlive-lang-portuguese}: idioma português do \texttt{babel};
\item \texttt{texlive-publishers}: pacote \texttt{abntex2cite} da \gls{abntex};
\item \index{xindy@\emph{xindy}}\texttt{xindy}: o indexador \emph{xindy}.
\end{enumerate}

É necessário enfatizar que a versão do \TeX{} Live disponível nos repositórios do sistema operacional nem sempre é a versão mais recente, a qual pode sempre ser encontrada na página oficial do \TeX{} Live, \url{https://www.tug.org/texlive/}.

Com a versão mais recente do \TeX{} Live instalada, é possível usar o \textit{\TeX{} Live Manager}, o gerenciador de pacotes do \TeX{} Live, para baixar todos os pacotes necessários, inclusive a classe da FEI, sob o nome \texttt{fei}.

\subsection{Mac OS}

No Mac, o \LaTeX{} pode ser instalado através do Mac\TeX{} (\url{http://tug.org/mactex/}), uma compilação completa do \TeX{} Live para Mac.

O Mac\TeX{} nem sempre possui a versão mais recente dos pacotes do repositório oficial do \TeX{}. Nesse caso, a opção é baixar a classe diretamente do repositório oficial ou da página do projeto no GitHub.

\subsection{Compilando do código-fonte}

A classe também pode ser baixada diretamente do GitHub, ou compilada do código-fonte. O repositório do projeto \footnote{\url{http://github.com/douglasrizzo/Classe-Latex-FEI}} possui todos os aruqivos necessários para o procedimento:

\begin{enumerate}
  \item o arquivo-fonte \texttt{fei.dtx};
  \item um Makefile para compilação do arquivo-fonte, através do comando \texttt{make};
  \item a classe \texttt{fei.cls}, pré-compilada.
\end{enumerate}

O processo de compilação requer que todas as dependências da classe já estejam instaladas. O único arquivo necessário para formatação dos trabalhos acadêmicos é a classe \texttt{fei.cls}, a qual deve ser mantida no mesmo diretório do arquivo \texttt{tex} do trabalho do aluno.

\section{FONTE ARIAL}

Por ser uma fonte True Type de autoria da Microsoft, as fontes da família Arial não são disponibilizadas nativamente por distribuições \LaTeX{} como o Mik\TeX{} e o \TeX{} Live. Para utilizá-las, é necessário instalá-las separadamente. As instruções para instalação das fontes estão disponíveis no site do \TeX \emph{Users Group}\footnote{http://tug.org/fonts/getnonfreefonts/}.

\begin{itemize}
\item Fazer download do script\footnote{http://tug.org/fonts/getnonfreefonts/install-getnonfreefonts};
\item Instalar o script usando o aplicativo \texttt{texlua}: \verb+texlua install-getnonfreefonts+;
\item Rodar o script: \verb+getnonfreefonts --all+.
\end{itemize}

Após isso, é necessário utilizar a opção \texttt{arial} na declaração da classe, no início do arquivo \texttt{tex}: \verb+\documentclass[arial]{fei}+.

\section{DEPENDÊNCIAS}\label{sec:dependencias}

Toda a formatação foi realizada a partir da importação e configuração de pacotes já existentes e disponíveis nas diversas distribuições de \index{Latex@\LaTeX}\LaTeX{} existentes. Durante o desenvolvimento desta classe, buscou-se utilizar o menor número de pacotes possíveis e sempre os mais comuns de serem encontrados. É necessário enfatizar a necessidade de instalação destes pacotes, listados e descritos mais abaixo, dos quais a classe \texttt{fei.cls} depende para seu funcionamento correto. Estes pacotes estão disponíveis nas distribuições do Mik\TeX{} (para Windows), Mac\TeX{} (para Mac OS) e \TeX{} Live (para Linux e Mac OS).

\begin{enumerate}
  \item\texttt{abntex2cite}: formata citações e referências de acordo com o padrão \index{ABNT}\gls{abnt} 6023;
  \item\texttt{algorithm2e}: provê comandos para a escrita de algoritmos;
  \item\texttt{amsthm}: possibilita criação de teoremas (e derivados);
  \item\texttt{babel}: escolha de línguas (importado pacote para português e inglês);
  \item\texttt{caption}: altera a formatação de certas legendas;
  \item\texttt{chngcntr}: redefine a numeração dos \emph{floats} -- tabelas, figuras, algoritmos e equações;
  \item\texttt{enumitem}: formatação de alíneas;
  \item\texttt{fancyhdr}: formatação dos cabeçalhos;
  \item\texttt{fontenc}: codificação 8 bits para as fontes de saída do PDF (normalmente, elas têm 7 bits);
  \item\texttt{geometry}: mudança do tamanho das margens;
  \item\texttt{glossaries}\index{glossaries@\emph{glossaries}}: permite a criação de listas de símbolos e abreviaturas;
  \item\texttt{graphicx}: importação e utilização de imagens;
  \item\texttt{hyperref}: gera os links entre referências no PDF;
  \item\texttt{icomma}: define a vírgula como separador de decimais no ambiente matemático (padrão português brasileiro);
  \item\texttt{ifthen}: permite a utilização de condições na geração do texto;
  \item\texttt{imakeidx}: permite a criação de um índice remissivo ao fim do texto;
  \item\texttt{lmodern}: carrega a família de fontes \emph{Latin Modern}, que possui maior abrangência de caracteres;
  \item\texttt{mathtools}: extensões para facilitar a escrita de fórmulas matemáticas (inclui o pacote \texttt{amsmath});
  \item\texttt{morewrites}: permite ao LaTeX escrever em mais de 16 arquivos auxiliares simultaneamente;
  \item\texttt{pdfpages}: faz a inclusão de páginas em PDF no documento final;
  \item\texttt{setspace}: espaçamento entre linhas aproximado de 1,5 linhas;
  \item\texttt{thmtools}: conjunto de macros para o pacote \texttt{amsthm};
  \item\texttt{times}: carrega fonte Times New Roman;
  \item\texttt{tocloft}: permite melhor personalização de itens do sumário, lista de figuras e tabelas;
  \item\texttt{uarial}: carrega fonte URW Arial.
\end{enumerate}

Ainda é necessário importar o pacote \texttt{inputenc}, responsável pela codificação dos arquivos \texttt{tex} de entrada (normalmente \texttt{latin1} ou \texttt{utf8}).

Os scripts de alguns programas \TeX{}, como o \texttt{makeglossaries}, são dependentes da linguagem \index{Perl}Perl, a qual vem instalada por padrão em alguns sistemas operacionais. Para os usuários de Windows, no entanto, o Perl deve ser instalado separadamente e pode ser encontrado em \url{https://www.perl.org/}.

\chapter{COMANDOS E AMBIENTES}\label{chap:comandos}

Este capítulo descreve os comandos disponibilizados pela classe. Ele é separado em quatro seções: a seção \ref{sec:preambulo} disserta sobre os comandos a serem utilizados antes do início do texto; a seção \ref{sec:pretexto} auxilia na declaração dos elementos pré-textuais do documento; a seção \ref{sec:texto} descreve a estrutura do texto e outros elementos a serem utilizados durante a produção deste, como \emph{floats}; a seção \ref{sec:postexto} disserta sobre os elementos pós-textuais, a saber, referências, apêndices, anexos e índice remissivo.

\section{PREÂMBULO}\label{sec:preambulo}

No preâmbulo do texto são declaradas as propriedades globais do documento, como a classe que rege a formatação geral do texto e novos comandos a serem utilizados no decorrer do texto. O preâmbulo da classe \texttt{fei.cls} contém os seguintes elementos que devem ser declarados no preâmbulo:

\subsection{Declaração da classe}

A declaração da classe é feita da seguinte forma:

\begin{verbatim}
\documentclass[opções]{fei}
\end{verbatim}

A classe da FEI pode receber as seguintes opções:

\begin{enumerate}
\item \texttt{rascunho}: Caso o autor ainda não possua a folha de aprovação e a ficha catalográfica, esta opção insere páginas demarcando o local que estes documentos tomarão;
\item \texttt{xindy}: configura o \index{xindy@\emph{xindy}}\emph{xindy} como programa de indexação a ser utilizado (mais sobre isso no capítulo \ref{chap:indice});
\item \texttt{sublist}: configura o pacote \texttt{glossaries} para que sub-listas de símbolos sejam usadas. Mais sobre sub-listas na seção \ref{sec:sublist};
\item \texttt{algo-as-figure}: configura o pacote \texttt{algorithm2e} para que algoritmos sejam listados na lista de ilustrações. Essa configuração é preferível, uma vez que a formatação das legendas e da lista de algoritmos, no presente, não condiz com as recomendações do guia da biblioteca;
% \item \texttt{bacharelado}, \texttt{especializacao}, \texttt{mestrado}, \texttt{doutorado}: realiza as modificações necessárias nos textos das folhas de rosto e de aprovação;
% \item \texttt{male-author}/\texttt{female-author}: esta opção altera o texto de páginas geradas automaticamente para que reflitam o gênero do autor/autora;
% \item \texttt{male-advisor}/\texttt{female-advisor}: esta opção altera o texto de páginas geradas automaticamente para que reflitam o gênero do orientador/orientadora;
\item \texttt{twoside}: a atualização de 2015 do guia da biblioteca recomenda que trabalhos acadêmicos com mais de 100 páginas sejam impressos em formato \index{frente-e-verso}frente-e-verso. Por ser derivada da classe \texttt{report}, a classe da FEI pode receber algumas opções nativas de \texttt{report}. Um exemplo de opção que pode ser útil é \texttt{twoside}, a qual alterna o tamanho das margens direita e esquerda das páginas, assim como a posição da numeração, permitindo realizar uma impressão frente-e-verso de melhor qualidade. Alterações adicionais foram realizadas para que todos os elementos pré-textuais sejam corretamente iniciados nas páginas ímpares, como recomenda o guia e a norma. É importante reparar, contudo, que a utilização de \texttt{twoside} acarreta no aumento do número de páginas, uma vez que os versos de algumas páginas no pré-texto podem ser deixados em branco em prol da norma.
\end{enumerate}

\subsection{Nome do autor, e título}

O nome do autor e o título da obra são inseridos utilizando os comandos nativos do \LaTeX{} \verb+\author{autor}+ e \verb+\title{titulo}+. Eles são posteriormente utilizados na criação da capa e folha de rosto do trabalho, formatados sob as normas da biblioteca. Para trabalhos com mais de um autor, os nomes dos autores devem ser separados pelo comando \verb+\and+ ou \verb+\\+, como no exemplo:

\begin{verbatim}
\author{Leonardo \and Douglas}
\end{verbatim}

\subsection{Subtítulo (opcional)}

Uma vez que as normas da biblioteca demandam formatações específicas para o título e subtítulo do documento (título em letras maiúsculas na capa, seguido do subtítulo em letras normais, separados por ``:''), foi criado o comando \verb+\subtitulo{}+, o qual recebe o texto referente ao subtítulo do texto. Este comando pode ser usado, preferencialmente, após o comando \verb+\title{}+ no preâmbulo do documento. Título e subtítulo também aparecem na folha de rosto.

\subsection{Cidade e Instituição (opcionais)}
Os comandos \verb+\cidade{}+ e \verb+\instituicao{}+ recebem os nomes da cidade e instituição de ensino para substituí-los na capa e folha de rosto. São comandos opcionais criados por questão de compatibilidade, ou caso outras instituições queiram usar a classe. Seus valores-padrão são ``São Bernardo do Campo'' e ``Centro Universitário FEI'', respectivamente.

\section{PRÉ-TEXTO}\label{sec:pretexto}

O pré-texto do documento engloba todos os elementos textuais que precedem o corpo da obra. A seguir são listados os elementos pré-textuais suportados pela classe \texttt{fei.cls} e os respectivos comandos para a criação de cada um deles.

\subsection{Capa}

A capa do trabalho é inserida através do comando \verb+\maketitle+, o qual foi modificado para criar uma página no formato da biblioteca. O comando utiliza o nome fornecido em \verb+\author{}+, o título em \verb+\title{}+, o subtítulo de \verb+\subtitulo{}+ juntamente com o ano corrente para gerar a capa.

\subsection{Folha de rosto}

A folha de rosto recebe um texto pré-definido, de acordo com o nível do trabalho escrito (monografia, dissertação ou tese). Este texto pode ser encontrado no guia da biblioteca e deve ser colocado dentro do ambiente \texttt{folhaderosto}. Por exemplo,
\begin{verbatim}
\begin{folhaderosto}
Dissertação de Mestrado apresentada ao Centro Universitário
da FEI para obtenção do título de Mestre em Engenharia
Elétrica, orientado pelo Prof. Dr. Nome do Orientador.
\end{folhaderosto}
\end{verbatim}

\subsection{Ficha catalográfica e folha de aprovação}

Os comandos \verb+\fichacatalografica+ e \verb+\folhadeaprovacao+ inserem, respectivamente, a ficha catalográfica e a folha de aprovação do trabalho no local onde o comando foi chamado. O comando  \verb+\folhadeaprovacao+ procura pelo arquivo \texttt{ata.pdf} na pasta raiz do arquivo \texttt{tex} e o insere no documento. O comando \verb+\fichacatalografica+ executa uma função semelhante, procurando pelo arquivo \texttt{ficha.pdf}.

Caso você ainda não possua estes arquivos, mas queira visualizar o documento com páginas que demarquem a posição das futuras folha de aprovação e ficha catalográfica, é possível compilar o projeto passando a opção \texttt{rascunho} na declaração da classe, da seguinte forma: \verb+\documentclass[rascunho]{fei}+.

\subsection{Dedicatória}

O comando \verb+\dedicatoria{}+ recebe um argumento com a dedicatória desejada e o insere na posição especificada pelo guia da biblioteca. Por exemplo: \\ \verb+\dedicatoria{A quem eu quero dedicar o texto}+.

\subsection{Agradecimentos}

O ambiente de agradecimentos não possui nenhuma propriedade especial, somente centraliza o título e deixa o texto que se encontra entre seu \texttt{begin} e \texttt{end} na formatação esperada.

\begin{verbatim}
\begin{agradecimentos}
A quem se deseja agradecer.
\end{agradecimentos}
\end{verbatim}

\subsection{Epígrafe}
A epígrafe possui um formato especial, da mesma forma que a dedicatória. Este comando recebe dois parâmetros, sendo o primeiro a epígrafe e o segundo o autor da mesma.

\emph{Nota:} O guia da FEI requer que a referência da epígrafe esteja presente no final do trabalho. O comando \verb+\nocite{obra}+ pode ser usado para que a referência apareça ao final do texto, sem aparecer na epígrafe.

Exemplo: \verb+\epigrafe{Haw-Haw!}{Nelson Muntz \nocite{muntz_book}}+

\subsection{Resumo e \emph{abstract}}

O ambiente \texttt{resumo} é destinado à inserção do resumo em português do trabalho, enquanto o ambiente \texttt{abstract} contém o resumo em inglês. A única diferença entre os dois ambientes está no fato de \texttt{abstract} possuir o comando \verb+\selectlanguage{english}+ no início, enquanto \texttt{resumo} utiliza \verb+\selectlanguage{portuges}+. Palavras-chave podem ser inseridas ao final desses ambientes utilizando, no resumo, o comando \verb+\palavraschave{...}+ e no \emph{abstract}, o comando \verb+\keyword{...}+. Lembrando que as palavras-chave devem ser separadas por ponto final.

\begin{verbatim}
\begin{resumo}
Resumo vem aqui.
\palavraschave{\LaTeX{}. FEI.}
\end{resumo}

\begin{abstract}
Abstract goes here.
\keyword{Keywords. Go. Here.}
\end{abstract}
\end{verbatim}

\subsection{Listas e sumário}

A classe da FEI permite a impressão de listas de figuras, tabelas, algoritmos, teoremas, abreviaturas e símbolos usando os comandos nativos do \LaTeX{}, redefinidos para aderirem aos padrões da biblioteca. Também é possível inserir um sumário. A tabela \ref{tbl:substituicoes} enumera os comandos para inserção das listas e do sumário.

\begin{table}[ht!]
  \caption{Listas e os comandos para imprimi-las} \label{tbl:substituicoes}
  \centering
  \begin{tabular}{|c|c|}
  \hline
  \textbf{Elemento} & \textbf{Comando} \\
  \hline
  Sumário & \verb+\tableofcontents+ \\
  \hline
  Lista de Figuras & \verb+\listoffigures+ \\
  \hline
  Lista de Tabelas & \verb+\listoftables+ \\
  \hline
  Lista de Algoritmos & \verb+\listofalgorithms+ \\
  \hline
  Lista de Teoremas & \verb+\listoftheorems+ \\
  \hline
  Listas de Abreviaturas e Símbolos & \verb+\printglossaries+ \\
  \hline
  \end{tabular}
  \smallcaption{Fonte: Autor}
\end{table}

\section{TEXTO}\label{sec:texto}

Sob a nomenclatura do guia da biblioteca, o texto pode ser estruturado utilizando até 5 níveis de títulos de seção. Isso se traduz no uso dos 5 níveis disponibilizados nativamente pelo \LaTeX: capítulo, seção, subseção, subsubseção e parágrafo. Para isso, são usados os comandos nativos do \LaTeX{} para divisão do texto: \verb+\chapter{...}+, \verb+\section{...}+, \verb+\subsection{...}+, \verb+\subsubsection{...}+ e \verb+\paragraph{...}+. Estes comandos inserem os títulos de suas respectivas divisões de acordo com o guia e são usados posteriormente na criação automática do sumário.

\subsection{\emph{Floats}}

As regras da biblioteca definem formatações distintas para os diferentes tipos de \emph{float} disponibilizados pelo \LaTeX{}. A seguir, serão descritas as diferentes formas de utilizar cada um deles.

\subsubsection{Figuras}

A partir de 2015, o guia de formatação da biblioteca padroniza as legendas de figuras e tabelas com a mesma formatação. Na parte superior da figura, coloca-se seu título, numeração e legenda em tamanho padrão 12 e, abaixo da figura, coloca-se sua fonte em tamanho 10. Para a criação da legenda superior da figura, utiliza-se o comando \verb+\caption{}+, enquanto que, para a legenda inferior, foi criado o comando \verb+\smallcaption{}+, o qual constitui uma interface simples para a formatação diferenciada da legenda inferior e, caso desejado, pode ser substituído por:

\begin{verbatim}
\captionsetup{font=small}
\caption*{...}
\end{verbatim}

A figura \ref{fig:exemplo} demonstra a inserção de uma figura usando o \LaTeX~, assim como o a inserção das legendas superior e inferior utilizando a formatação nativa.

\begin{figure}
\centering
\caption{Exemplo de figura com sua fonte.}
\rule{2cm}{2cm}
\smallcaption{Fonte: \citefloat{lamport1994latex}.}\label{fig:exemplo}
\end{figure}

\begin{verbatim}
	\begin{figure}
	\centering
  \caption{Exemplo de figura com sua fonte.}
	\includegraphics[...]{...}
	\smallcaption{Fonte: Autor.}
	\end{figure}
\end{verbatim}

\subsubsection{Tabelas}

Da mesma forma que figuras, o guia da biblioteca é bem específico quanto às legendas de tabelas: legenda principal em cima da tabela e fonte abaixo. Para satisfazer esta regra, deve-se utilizar o mesmo processo descrito para as figuras. Um exemplo pode ser visto na tabela \ref{tbl:exemplo}.

\begin{verbatim}
\begin{table}[ht!]
	\caption{Legenda da tabela}
	\begin{tabular}{|c|c|c|c|}
		[...]
	\end{tabular}
  \smallcaption{Fonte: Autor.}
\end{table}
\end{verbatim}

\begin{table}[ht!]
  \caption{Exemplo de tabela com legenda acima e fonte abaixo} \label{tbl:exemplo}
  \centering
  \begin{tabular}{|c|c|c|c|}
  \hline
  & \(x_1\) & \(x_2\) & \(x_3\) \\
  \hline
  \(y_1\) & 1 & 0 & 0 \\
  \hline
  \(y_2\) & 0 & 1 & 0 \\
  \hline
  \(y_3\) & 0 & 0 & 1 \\
  \hline
  \end{tabular}
  \smallcaption{Fonte: Autor}
\end{table}

\subsubsection{Algoritmos}

Apesar de estar ausente no guia, a biblioteca permite a inserção de algoritmos no corpo do texto. O pacote \texttt{algorithm2e} fornece diversos comandos para a escrita e formatação de pseudo-códigos em diversos idiomas. A formatação configurada na classe da FEI reflete as recomendações da biblioteca e padrões encontrados na literatura.
A lista a seguir contém todos os comandos do \texttt{algorithm2e} que foram traduzidos para o português e, logo após, um exemplo de como usar alguns desses comandos. Para mais informações, consulte o manual do \texttt{algorithm2e}.

\begin{verbatim}
\SetKwInput{Entrada}{Entrada}
\SetKwInput{Saida}{Sa\'ida}
\SetKwInput{Dados}{Dados}
\SetKwInput{Resultado}{Resultado}
\SetKw{Ate}{at\'e}
\SetKw{Retorna}{retorna}
\SetKwBlock{Inicio}{in\'icio}{fim}
\SetKwIF{Se}{SenaoSe}{Senao}
	{se}{ent\~ao}{sen\~ao se}{sen\~ao}{fim se}
\SetKwSwitch{Selec}{Caso}{Outro}
	{selecione}{faça}{caso}{sen\~ao}{fim caso}{fim selec}
\SetKwFor{Para}{para}{fa\c{c}a}{fim para}
\SetKwFor{ParaPar}{para}{fa\c{c}a em paralelo}{fim para}
\SetKwFor{ParaCada}{para cada}{fa\c{c}a}{fim para cada}
\SetKwFor{ParaTodo}{para todo}{fa\c{c}a}{fim para todo}
\SetKwFor{Enqto}{enquanto}{fa\c{c}a}{fim enqto}
\SetKwRepeat{Repita}{repita}{at\'e}
\end{verbatim}

    Exemplo:

\begin{verbatim}
\begin{algorithm}
	\Entrada{Vetor \(X\)}
	\Saida{Vetor \(Y\)}
	\ParaCada{variável \(x_i \in X\)}{
		\(y_i = x_i^2\)
	}
	\Retorna \(Y\)
	\caption{Exemplo de algoritmo usando algorithm2e em português.}
	\label{lst:alg}
\end{algorithm}
\end{verbatim}

\begin{algorithm}
\Entrada{Vetor \(X\)}
\Saida{Vetor \(Y\)}

\ParaCada{variável \(x_i \in X\)}{

\(y_i = x_i^2\)

}

\Retorna \(Y\)
\caption{Exemplo de algoritmo usando algorithm2e em português.}\label{lst:alg}
\end{algorithm}

\subsubsection{Equações}

O guia da biblioteca também dita que todas as equações devem vir acompanhadas de numeração entre parênteses. O ambiente \texttt{equation} insere essa numeração à direita da equação. Adicionalmente, o pacote \texttt{mathtools} permite que uma equação seja referenciada durante o texto utilizando o comando \verb+\eqref{label_da_equacao}+, cuja funcionalidade é semelhante à do comando \verb+\ref{}+, porém com a adição dos parênteses.

\begin{equation} \label{eq:euler}
e^{i\pi}+1=0
\end{equation}

A equação \eqref{eq:euler} foi criada utilizando o seguinte código:

\begin{verbatim}
\begin{equation} \label{eq:euler}
e^{i\pi}+1=0
\end{equation}
\end{verbatim}

\subsubsection{Teoremas}

É comum encontrar, na literatura de exatas, teoremas e seus derivados, tipografados de maneira diferenciada. Em \LaTeX{}, a classe \texttt{amsthm} permite que teoremas sejam escritos em seus próprios ambientes e formatados de acordo, como no seguinte exemplo:

\begin{verbatim}
\begin{teorema}
Exemplo de teorema.
\end{teorema}
\end{verbatim}

Resultado:

\begin{teorema}\label{thm:ex1}
Exemplo de teorema.
\end{teorema}

Caso um teorema possua um nome ou referência, essa informação pode ser passada entre colchetes, como uma opção do ambiente:

\verb+\begin{teorema}[Teorema de Pitágoras \cite{obra}]+

\begin{teorema}[Teorema de Pitágoras \cite{heath1921history}] \label{thm:ex2}
Em qualquer triângulo retângulo, o quadrado do comprimento da hipotenusa é igual à soma dos quadrados dos comprimentos dos catetos.
\end{teorema}

A classe da FEI disponibiliza os ambientes \emph{axioma, teorema, lema, hipotese, proposicao, conjectura, paradoxo, corolario, definicao} e \emph{exemplo}, com chamada e numeração em negrito e texto com formatação padrão, como nos teoremas \ref{thm:ex1} e \ref{thm:ex2}. Também há o ambiente \emph{prova}, utilizado para se demonstrar alguma propriedade mencionada, o qual não é numerado e tem sua chamada em itálico. O término de um teorema, denominado ``como se queria demonstrar'' (CQD), do latim \gls{qed}, é representado pelo símbolo \qedsymbol, denominado ``lápide''.

\subsection{Alíneas}

Segundo o padrão da biblioteca, ``se houver necessidade de enumerar diversos assuntos dentro de uma seção, deve-se utilizar alíneas ordenadas alfabeticamente por letras minúsculas seguidas de parênteses com margem de 1,25 cm''. Para que não houvesse problemas de formatação, o ambiente \texttt{itemize} foi redirecionado para utilizar o \texttt{enumerate} e este passa a utilizar letras para a sequência de items (como utilizado na seção~\ref{sec:dependencias}). Alíneas em segundo nível são iniciadas pelo caractere \emph{en dash} (--).

\begin{enumerate}
  \item Primeiro item;
  \item Segundo item;
  \begin{enumerate}
    \item Primeiro sub-item;
    \item Segundo sub-item.
  \end{enumerate}
  \item Terceiro item.
\end{enumerate}

\section{PÓS-TEXTO}\label{sec:postexto}

Fazem parte dos elementos pós-textuais as referências bibliográficas, apêndices, anexos e o índice remissivo. Este capítulo descreve os comandos para \emph{inserção} destes elementos. Os capítulos seguintes instruirão como \emph{criá-los}.

\subsection{Referências bibliográficas}

Para formatar o título da página de referências e adicioná-la ao sumário, utiliza-se o comando \verb+\bibliography{}+, que recebe como parâmetro o caminho para o arquivo \texttt{bib} e formata o título da página como pede o guia da biblioteca.

Exemplo: \verb+\bibliography{minha_bibliografia.bib}+

\subsection{Apêndices e anexos}

O \LaTeX{} possui o comando nativo \verb+\appendix+ que, quando utilizado, transforma os capítulos subsequentes em apêndices.

	\begin{verbatim}
	\chapter{Último capítulo}
	...
	\appendix
	\chapter{Primeiro apêndice}
	...
	\chapter{Segundo apêndice}
	...
	\end{verbatim}

Ao contrário dos apêndices, o \LaTeX{} não possui um comando nativo para declarar anexos. Para isso, foi criado o comando \verb+\anexos+ que transforma os capítulos subsequentes em anexos.

	\begin{verbatim}
	\chapter{Último capítulo ou anexo}
	...
	\anexos
	\chapter{Primeiro anexo}
	...
	\chapter{Segundo anexo}
	...
	\end{verbatim}

\subsection{Índice}

A biblioteca permite a criação de um índice remissivo de palavras, para que estas sejam encontradas com maior facilidade no decorrer do trabalho. O capítulo, \ref{chap:indice} explica com detalhes os diferentes programas e comandos envolvidos na indexação de palavras e compilação dos arquivos de índices, mas, por motivos de completude, o comando para se imprimir o índice é \verb+\printindex+.

\chapter{CITAÇÕES USANDO O abn\TeX}\label{chap:referencia}

O \gls{abntex} (\url{https://code.google.com/p/ABNTex2/}) é um conjunto de macros (comandos e ambientes) que busca seguir as normas da \index{ABNT}\gls{abnt} para formatos acadêmicos. O pacote completo do \gls{abntex}~fornece tanto uma classe para a formatação do texto quanto um pacote para a formatação das referências bibliográficas. Para a formatação correta das citações e referências de acordo com o padrão da biblioteca da \index{FEI}\gls{fei}, foi importado o pacote \texttt{abntex2cite-alf}, que utiliza o modelo autor-data.

As seções a seguir disponibilizam exemplos dos comandos mais comuns. Para uma lista detalhada, o leitor é referenciado ao manual do \texttt{abntex2cite-alf}.

\section{CITAÇÃO NO FINAL DE LINHA}
A citação no final de linha deve deixar os nomes dos autores, seguido do ano, entre parenteses e em letras maiúsculas. Este resultado pode ser obtido utilizando o comando \verb+\cite{obra}+.

Exemplo: Este texto deveria ser uma referência \verb+\cite{j:turing50}+. $\to$ Este texto deveria ser uma referência \cite{j:turing50}.

\section{CITAÇÃO DURANTE O TEXTO}
Para que a citação seja feita durante o texto, o nome do autor é formatado somente com as iniciais maiúsculas e o ano entre parenteses. O pacote da \gls{abntex}~fornece o comando \verb+\citeonline{obra}+ para este caso.

Exemplo: Segundo \verb+\citeonline{haykin99a}+, este texto deveria ser uma referência. $\to$ Segundo \citeonline{haykin99a}, este texto deveria ser uma referência.

\section{CITAÇÃO INDIRETA}
Quando se deseja citar uma obra a qual o autor não possui acesso direto a ela, pode-se citar uma outra obra que, por sua vez, cita a primeira. O \gls{abntex}~disponibiliza esse tipo de citação através do comando \verb+\apud{obra_inacessivel}{obra_acessivel}+.

Exemplo: \verb+\apud{Mcc43}{russell_artificial_2010}+ formata a citação de forma semelhante a \apud{Mcc43}{russell_artificial_2010}.

\section{CITAÇÃO NO RODAPÉ}

Citações no rodapé\footciteref{j:turing50} são feitas usando o comando \verb+\footciteref{obra}+.

\section{CITAÇÕES MÚLTIPLAS}

Os comandos \verb+\cite{obra_1,...,obra_n}+ e \verb+\citeonline{obra_1,...,obra_m}+ também possibilitam a utilização de citações múltiplas.

Exemplos:

\verb+\cite{Mcc43,russell_artificial_2010,haykin99a}+ \(\to\) \cite{Mcc43,russell_artificial_2010,haykin99a}.

\verb+\citeonline{Mcc43,russell_artificial_2010,haykin99a}+ \(\to\) \citeonline{Mcc43,russell_artificial_2010,haykin99a}.

\section{CITAÇÕES DE CAMPOS ESPECÍFICOS}

Para citar o nome do autor em linha, utilize o comando \verb+\citeauthoronline{obra}+.

\verb+\citeauthoronline{galilei_dialogue_1953}+ \(\to\) \citeauthoronline{galilei_dialogue_1953}

Para citar o nome do autor em letras maiúsculas, utilize\verb+\citeauthor{obra}+.

\verb+\citeauthor{galilei_dialogue_1953}+ \(\to\) \citeauthor{galilei_dialogue_1953}

Para citar o ano de uma obra, utilize \verb+\citeyear{obra}+.

\verb+\citeyear{galilei_dialogue_1953}+ \(\to\) \citeyear{galilei_dialogue_1953}

\section{CITAÇÃO PARA \emph{FLOATS}}

No caso das citações que devem ser feitas em \emph{floats}, como ilustrações e tabelas, foi criado o comando \verb+\citefloat{}+ um comando específico que reflete as recomendações da biblioteca. O objetivo principal deste comando é ser utilizado dentro de \verb+\smallcaption{}+, para que a fonte do \emph{float} seja referenciada corretamente.

\verb+Fonte: \citefloat{galilei_dialogue_1953}.+ \(\to\) Fonte: \citefloat{galilei_dialogue_1953}.

\section{OUTROS EXEMPLOS}

\verb+\Idem[p.~2]{j:turing50}+ \(\to\) \Idem[p.~2]{j:turing50}

\verb+\Ibidem[p.~2]{j:turing50}+ \(\to\) \Ibidem[p.~2]{j:turing50}

\verb+\opcit[p.~2]{j:turing50}+ \(\to\) \opcit[p.~2]{j:turing50}

\verb+\passim{j:turing50}+ \(\to\) \passim{j:turing50}

\verb+\loccit{j:turing50}+ \(\to\) \loccit{j:turing50}

\verb+\cfcite[p.~2]{j:turing50}+ \(\to\) \cfcite[p.~2]{j:turing50}

\verb+\etseq[p.~2]{j:turing50}+ \(\to\) \etseq[p.~2]{j:turing50}

\section{CITAÇÕES COM MAIS DE TRÊS LINHAS}

O único tipo de citação que independe do pacote \texttt{abntex2cite} é a citação com mais de três linhas. De acordo com o guia da biblioteca, ela deve ter recuo de 4 cm da margem esquerda, letra de tamanho 10 pt, espaçamento simples e não deve conter aspas nem recuo ao início do parágrafo. No \index{Latex@\LaTeX}\LaTeX{}, os ambientes responsáveis por tais citações são \texttt{quote} (para citações de um parágrafo) e \texttt{quotation} (para citações com mais de um parágrafo).

Exemplo:

\begin{quote}
I propose to consider the question, `Can machines think?' This should begin with definitions of the meaning of the terms `machine' and `think'. The definitions might be framed so as to reflect so far as possible the normal use of the words, but this attitude is dangerous. If the meaning of the words `machine' and `think' are to be found by examining how they are commonly used it is difficult to escape the conclusion that the meaning and the answer to the question, `Can machines think?' is to be sought in a statistical survey such as a Gallup poll. But this is absurd. Instead of attempting such a definition I shall replace the question by another, which is closely related to it and is expressed in relatively unambiguous words. \cite{j:turing50}
\end{quote}

\chapter{ÍNDICES}\label{chap:indice}

Assim como as referências são geradas por um programa a parte (o Bib\TeX), a criação de índices remissivos também o é. Neste quesito, o \index{makeindex@\emph{MakeIndex}}\emph{MakeIndex} é o programa pioneiro na geração de índices e é parte integrante de todas as instalações do \LaTeX{}. Contudo, o \emph{MakeIndex} foi codificado com suporte apenas para o idioma inglês, o que significa que palavras que contêm caracteres mais exóticos -- como acentos ou cedilha -- não serão organizados corretamente. Para solucionar este problema, usuários de Linux possuem como opção secundária o \index{xindy@\emph{xindy}}\emph{xindy}, um outro gerador de índices que possui as mesmas funcionalidades e aceita os mesmos comandos do \emph{MakeIndex}, porém com suporte a uma infinidade de idiomas.

Para ambos os casos, foi importado o pacote \texttt{imakeidx}, o qual permite selecionar entre o \emph{MakeIndex} e o \emph{xindy} em suas opções. O \emph{MakeIndex} é o motor padrão de indexação; para utilizar o \emph{xindy}, é necessário declarar esta opção ao carregar a classe, da seguinte forma: \verb+\documentclass[xindy]{fei}+

Como o \emph{xindy} não é parte integrante do \LaTeX{}, ensinamos como instalá-lo no capítulo \ref{chap:instalacao}. Também é necessário executar um passo adicional na compilação do projeto, o qual é explicado no capítulo \ref{chap:compilando}.

\section{SINALIZANDO A CRIAÇÃO DOS ARQUIVOS DE ÍNDICE}

Para que o LaTeX crie os arquivos auxiliares  que serão lidos pelo \emph{MakeIndex}, é necessário sinalizar o compilador para que essa criação seja feita. Isso é feito adicionando o comando \verb+\makeindex+ ao preâmbulo de seu texto.

\section{INDEXANDO PALAVRAS}

Para que uma palavra apareça posteriormente no índice, é necessário indexá-la. Para isso, usa-se o comando \verb+\index{palavra}+, o qual inclui ``palavra'' no arquivo auxiliar de indexação.

Exemplo: [\ldots] a biblioteca do Centro Universitário da \verb+\index{FEI}+\index{FEI}\gls{fei} utiliza um modelo baseado na norma da \verb+\index{ABNT}+\index{ABNT}\gls{abnt} [\ldots]

É possível indexar uma palavra mais de uma vez, para que todas as páginas nas quais esta palavra apareceu apareçam no índice.

Para aprender dicas avançadas na criação de índices mais complexos, recomenda-se a leitura da documentação do \emph{MakeIndex} (\url{http://www.ctan.org/pkg/makeindex}) assim como de \citeonline{mittelbach_latex_2004}, que disserta tanto sobre o \emph{xindy} como \emph{MakeIndex}.

\section{IMPRIMINDO O ÍNDICE}

A impressão do índice é feita utilizando o comando \verb+\printindex+, o qual, além de imprimir o índice, inclui uma entrada para o mesmo no sumário.

\chapter{LISTAS DE SÍMBOLOS E ABREVIATURAS} \label{chap:listas}

Para a criação das listas de símbolos e abreviaturas, foi utilizado o pacote \index{glossaries@\emph{glossaries}}\emph{glossaries}, responsável por indexar termos de diferentes categorias e gerar listas destes termos. Ao contrário do índice, que indexa as palavras no decorrer do texto, o pacote \emph{glossaries} exige que os termos sejam declarados antes de serem referenciados durante o texto. Uma boa prática para organizar tais termos consiste em declará-los ao início do documento, ou em um documento separado, o qual pode ser chamado utilizando os comandos \verb+\input+ ou \verb+\include+. Estas opções ficam a cargo do leitor. As próximas duas seções ensinarão os comandos básicos para indexação de símbolos e abreviaturas.

\emph{Nota:} assim como descrito no capítulo \ref{chap:indice}, o pacote \emph{glossaries} depende das ferramentas \index{makeindex@\emph{MakeIndex}}\emph{MakeIndex}.

\section{SINALIZANDO A CRIAÇÃO DOS ARQUIVOS DE LISTAS DE SÍMBOLOS E ABREVIATURAS}

Para que o LaTeX crie os arquivos auxiliares  que serão lidos pelo \emph{glossaries}, é necessário sinalizar o compilador para que essa criação seja feita. Isso é feito adicionando o comando \verb+\makeglossaries+ ao preâmbulo de seu texto.

\section{INDEXANDO ABREVIATURAS}

A indexação de abreviaturas é feita utilizando o comando

\verb+\newacronym[longplural=1]{2}{3}{4}+, onde:

\begin{enumerate}
\item 1: o significado a abreviatura no plural, escrito por extenso (\emph{opcional});
\item 2: código que será utilizado para referenciar a abreviatura no decorrer do texto;
\item 3: a abreviatura em si;
\item 4: o significado a abreviatura, escrito por extenso.
\end{enumerate}

Exemplo: \verb+\newacronym[longplural=Associações+

		 \verb+Brasileiras de Normas Técnicas]+

		 \verb+{abnt}{ABNT}{Associação Brasileira de Normas Técnicas}+

\section{INDEXANDO SÍMBOLOS}

A indexação de símbolos é feita utilizando o comando

\verb+\newglossaryentry{1}{parent={2},type=symbols,+

\verb+name={3},sort={4},description={5}}+, onde:

\begin{enumerate}
\item 1: código que será utilizado para referenciar a abreviatura no decorrer do texto);
\item 2: tipo do símbolo; usado para separar letras gregas e subscritos das demais (Cf. exemplo abaixo);
\item 3: o símbolo; caso a notação matemática seja necessária, use \verb+\ensuremath{2}+ (Cf. exemplo abaixo);
\item 4: uma sequência de caracteres para indicar a ordenação alfabética do símbolo na lista;
\item 5: a descrição do símbolo, que aparecerá na lista.
\end{enumerate}

Exemplo: \verb+\newglossaryentry{pi}{parent=greek,type=symbols,+

		 \verb+name={\ensuremath{\pi}},sort=p,+

		 \verb+description={número irracional que representa [...]}}+

\section{UTILIZANDO ABREVIATURAS E SÍMBOLOS INDEXADOS}

O pacote \index{glossaries@\emph{glossaries}}\emph{glossaries} disponibiliza os seguintes comandos para chamar os itens indexados durante o texto:

\begin{enumerate}
\item \verb+\gls{<rotulo>}+: imprime a entrada em letras minúsculas;
\item \verb+\Gls{<rotulo>}+: imprime a entrada em letras maiúsculas;
\item \verb+\glspl{<rotulo>}+: imprime a entrada no plural;
\item \verb+\Glspl{<rotulo>}+: imprime a entrada no plural e em letras maiúsculas.
\end{enumerate}

As siglas possuem alguns comandos únicos para serem referenciadas:

\begin{enumerate}
\item \verb+\acrfull{<rotulo>}+ imprime a abreviatura completa \(\to\) \acrfull{fei};
\item \verb+\acrlong{<rotulo>}+ imprime a parte por extenso da abreviatura \(\to\) \acrlong{fei};
\item \verb+\acrshort{<rotulo>}+ imprime apenas a abreviatura \(\to\) \acrshort{fei}.
\end{enumerate}

Repare que, no caso das siglas, quando estas são usadas pela primeira vez, são impressas a definição seguida da sigla entre parênteses. Nas demais vezes, a sigla aparecerá sozinha. Já os símbolos podem ser utilizados dentro de equações, ou na definição de outros símbolos, como no seguinte exemplo \cite{Goldberg1989}, \[ \operatorname{E}(\gls{m}(\gls{h},\gls{t}+1)) \geq {\gls{m}(\gls{h},\gls{t}) \gls{f}(\gls{h}) \over \gls{at}}[1-\gls{p}], \] onde \[ p = \frac{\gls{delta}(\gls{h})}{\gls{l}-1}\gls{pc} + \gls{oh}(\gls{h}) \gls{pm}. \] Os símbolos utilizados nas equações são cadastrados no início do arquivo, inseridos com o comando \verb+\gls{}+ e consequentemente, adicionados na lista de símbolos.

É importante ressaltar que o pacote \index{glossaries@\emph{glossaries}}\emph{glossaries} adiciona às listas somente os termos que foram utilizados durante o texto. Para que todos os termos declarados apareçam, basta usar o comando \verb+\glsaddall+ no corpo do texto.

\section{HIERARQUIA DE SÍMBOLOS}\label{sec:sublist}
Atendendo à demanda de alunos que utilizam uma quantidade muito extensa de símbolos em seus trabalhos, a classe da FEI passou a suportar o uso de listas se símbolos que permitam a ordenação hierárquica dos símbolos. Esta adição foi feita através do uso do estilo \texttt{alttree} do pacote \texttt{glossaries}. Para que este estilo seja utilizado no documento, a opção \texttt{sublist} deve ser passada à classe.

O exemplo abaixo demonstra como criar uma categoria de símbolos e inserir um símbolo nela. Mais de uma categoria de símbolos pode ser criada. Para mais exemplos, consulte os arquivos de exemplo do repositório ou o manual do pacote \texttt{glossaries}.

  \begin{verbatim}
  \newglossaryentry{greek}{name={Letras gregas},
    description={\nopostdesc},sort=a}
  \newglossaryentry{deltap}{parent=greek,type=symbols,
    name={\ensuremath{\Delta P}},sort=deltap,
    description={pressure drop, $Pa$}}
  \end{verbatim}

\section{IMPRIMINDO AS LISTAS}

A lista de abreviaturas pode ser impressa através do comando \verb+\printacronyms+. A lista de símbolos pode ser impressa através do comando \verb+\printsymbols+. Todas as listas criadas através do pacote \texttt{glossaries}, inclusive as definidas pelo próprio usuário, podem ser impressas sequencialmente através do comando \verb+\printglossaries+.

\chapter{COMPILANDO O PROJETO} \label{chap:compilando}

Para utilizar todos os recursos que a \texttt{fei.cls} disponibiliza, é necessário compilar o projeto utilizando diferentes programas em ordem específica. Esta sessão descreve estes programas, a ordem na qual eles devem ser utilizados e algumas ferramentas inteligentes que automatizam este processo.

\section{O JEITO DIFÍCIL}

Para compilar o documento manualmente, é preciso executar os seguintes programas na seguinte ordem\footnote{Para uma descrição referente a todos os arquivos gerados no processo de compilação, vide apêndices}.

\[\operatorname*{\text{pdf\LaTeX}}_a \to \operatorname*{\text{Bib\TeX}}_b \to \operatorname*{\text{MakeGlossaries}}_c \to \operatorname*{\text{pdf\LaTeX}}_d \to \operatorname*{\text{MakeIndex}}_e \to \operatorname*{\text{pdf\LaTeX}}_f\]

onde:

\begin{enumerate}
\item gera arquivos auxiliares básicos, utilizados pelos demais programas, e uma versão inicial do PDF;
\item gera a bibliografia lendo o arquivo \texttt{bib} utilizado. Necessário apenas se citações e referências forem usadas no texto;
\item cria um ou mais arquivos de listas (de símbolos e siglas). Necessário apenas se houve indexação e utilização de símbolos e abreviaturas no texto;
\item atualiza todas as referências através do texto, utilizando os arquivos gerados em \emph{b}, \emph{c} e \emph{d} (\emph{desnecessário se os passos b -- d não foram realizados});
\item cria um ou mais arquivos de índice. Necessário apenas se houver indexação de palavras para serem adicionadas ao índice;
\item gera o PDF final (\emph{desnecessário se os passos b -- e não foram realizados}), incluindo o índice gerado no passo anterior.
\end{enumerate}

Um exemplo de comando que executa todas essas funções é o seguinte:

\begin{verbatim}
pdflatex documento.tex
bibtex documento.aux
makeglossaries documento
pdflatex documento.tex
makeindex documento.idx
pdflatex documento.tex
\end{verbatim}

Caso o \index{xindy@\emph{xindy}}\emph{xindy} esteja sendo usado como o motor de indexação, é necessário passar o parâmetro \verb+-shell-escape+ ao pdf\LaTeX{}, para que ele possa executar comandos no \emph{shell} do Linux.

\section{O JEITO FÁCIL}

Existem diversas ferramentas que automatizam o processo de compilação de um documento em \LaTeX{}, abstraindo o usuário da complexidade de utilizar todos os programas menores que geram o arquivo final. Duas dessas ferramentas são o \texttt{latexmk} e o \texttt{rubber}, ambas criadas especificamente para realizar a automatização da compilação de documentos \TeX{}. Supondo que haja um arquivo chamado \texttt{documento.tex} no diretório atual, os comandos seguintes geram um PDF completo.

\begin{enumerate}
\item \texttt{latexmk -pdf -interaction=nonstopmode documento}
\item \texttt{rubber -d documento}
\end{enumerate}

Caso haja apenas um arquivo \texttt{tex} no diretório, não é necessário especificar o nome do documento, assim como nunca é necessário deixar explícito tanto ao \texttt{latexmk} quanto ao \texttt{rubber} se o documento sendo compilado possui bibliografia, índices ou listas. Os programas detectam a existência desses construtos adicionais examinando os arquivos auxiliares gerados durante o processo e executam todos os comandos apropriados na ordem certa e o número suficiente de vezes.

\chapter{LEITURA COMPLEMENTAR}

\citeonline{lamport1994latex} e \citeonline{mittelbach_latex_2004} descrevem de maneira completa o \LaTeX: seus comandos, funcionalidades e programas adicionais que interagem com ele, como o Bib\TeX{}, \emph{MakeIndex}, \emph{xindy} entre outros, sendo \citeauthoronline{lamport1994latex} o criador do \LaTeXe e \citeauthoronline{mittelbach_latex_2004} os atuais mantenedores do \LaTeXe\ e do projeto do \LaTeX{} 3. \citeonline{lshort} mantém um guia atualizado de \LaTeX{} em seu site, disponível em PDF para download gratuito. O livro \emph{open-source} de \LaTeX{} no Wikibooks \url{http://en.wikibooks.org/wiki/LaTeX/} também é uma ótima fonte de busca para comandos e pacotes. A \gls{ctan} \url{http://ctan.org} é o repositório online para todos os pacotes utilizados pelo \LaTeX{}, assim como seus manuais.

\bibliography{referencias}

\appendix

\chapter{ARQUIVOS CRIADOS PELO PROCESSO DE COMPILAÇÃO} \label{chap:arquivos}

A seguir, as descrições dos arquivos auxiliares gerados durante o processo de compilação de um documento utilizando a classe \texttt{fei.cls} e todos os seus recursos.

\begin{enumerate}

\item\verb+pdflatex documento.tex+
\begin{enumerate}
\item \texttt{alg}: \emph{log} do \index{makeindex@\emph{MakeIndex}}\emph{MakeIndex};
\item \texttt{aux}: arquivo com as referências a serem processadas pelo \index{Bibtex@Bib\TeX}Bib\TeX;
\item \texttt{glo,acn,sym}: listas de abreviaturas e símbolos.
\item \texttt{idx}: arquivo com os termos a serem adicionados no índice pelo \emph{MakeIndex};
\item \texttt{loa}: lista de algoritmos;
\item \texttt{out}: atalhos (\emph{bookmarks}) utilizados pelo leitor de PDF.
\item \texttt{toc}: sumário;
\end{enumerate}

\item\verb+bibtex documento.aux+
\begin{enumerate}
\item \texttt{bbl}: arquivo contendo as citações utilizadas no texto, prontas a serem incluídas na próxima execução do pdf\LaTeX;
\item \texttt{blg}: \emph{log} do \index{Bibtex@Bib\TeX}Bib\TeX{}.
\end{enumerate}

\item\verb+makeindex documento.idx+
\begin{enumerate}
\item \texttt{ilg}: \emph{log} do MakeIndex.
\item \texttt{ind}: contém, em linguagem \emph{tex}, a formação do índice a ser inserida na chamada a \verb+\printindex+;
\end{enumerate}

\item\verb+makeglossaries documento+
\begin{enumerate}
\item \texttt{acr,sbl,gls}:  contém, em linguagem \emph{tex}, a formação das listas a serem inseridas na chamada a \verb+\printglossaries+;
\item \texttt{glg}: \emph{log} do \emph{glossaries}.
\end{enumerate}
\end{enumerate}

\chapter{REFERÊNCIA DE SÍMBOLOS \TeX{}} \label{chap:simbolos}

\section{LETRAS GREGAS}
\begin{multicols}{3}
\noindent
\(\alpha\) \verb+\alpha+\\
\(\beta\) \verb+\beta+\\
\(\gamma\) \verb+\gamma+\\
\(\delta\) \verb+\delta+\\
\(\epsilon\) \verb+\epsilon+\\
\(\varepsilon\) \verb+\varepsilon+\\
\(\zeta\) \verb+\zeta+\\
\(\eta\) \verb+\eta+\\
\(\theta\) \verb+\theta+\\
\(\vartheta\) \verb+\vartheta+\\
\(\iota\) \verb+\iota+\\
\(\kappa\) \verb+\kappa+\\
\(\lambda\) \verb+\lambda+\\
\(\mu\) \verb+\mu+\\
\(\nu\) \verb+\nu+\\
\(\xi\) \verb+\xi+\\
\(\o\) \verb+\o+\\
\(\pi\) \verb+\pi+\\
\(\varpi\) \verb+\varpi+\\
\(\rho\) \verb+\rho+\\
\(\Gamma\) \verb+\Gamma+\\
\(\Delta\) \verb+\Delta+\\
\(\Theta\) \verb+\Theta+\\
\(\Lambda\) \verb+\Lambda+\\
\(\Xi\) \verb+\Xi+\\
\(\Pi\) \verb+\Pi+\\
\(\Sigma\) \verb+\Sigma+\\
\(\Upsilon\) \verb+\Upsilon+\\
\(\varrho\) \verb+\varrho+\\
\(\sigma\) \verb+\sigma+\\
\(\varsigma\) \verb+\varsigma+\\
\(\tau\) \verb+\tau+\\
\(\upsilon\) \verb+\upsilon+\\
\(\phi\) \verb+\phi+\\
\(\varphi\) \verb+\varphi+\\
\(\chi\) \verb+\chi+\\
\(\psi\) \verb+\psi+\\
\(\omega\) \verb+\omega+\\
\(\Phi\) \verb+\Phi+\\
\(\Psi\) \verb+\Psi+\\
\(\Omega\) \verb+\Omega+\\
\end{multicols}

\section{SÍMBOLOS}
\begin{multicols}{3}
\noindent
\(\aleph\) \verb+\aleph+\\
\(\hbar\) \verb+\hbar+\\
\(\imath\) \verb+\imath+\\
\(\jmath\) \verb+\jmath+\\
\(\ell\) \verb+\ell+\\
\(\wp\) \verb+\wp+\\
\(\Re\) \verb+\Re+\\
\(\Im\) \verb+\Im+\\
\(\partial\) \verb+\partial+\\
\(\infty\) \verb+\infty+\\
\(\prime\) \verb+\prime+\\
\(\emptyset\) \verb+\emptyset+\\
\(\nabla\) \verb+\nabla+\\
\(\surd\) \verb+\surd+\\
\(\top\) \verb+\top+\\
\(\bot\) \verb+\bot+\\
\(\|\) \verb+\|+\\
\(\angle\) \verb+\angle+\\
\(\triangle\) \verb+\triangle+\\
\(\backslash\) \verb+\backslash+\\
\(\forall\) \verb+\forall+\\
\(\exists\) \verb+\exists+\\
\(\lnot\) \verb+\neg+ ou \verb+\lnot+\\
\(\flat\) \verb+\flat+\\
\(\natural\) \verb+\natural+\\
\(\sharp\) \verb+\sharp+\\
\(\clubsuit\) \verb+\clubsuit+\\
\(\diamondsuit\) \verb+\diamondsuit+\\
\(\heartsuit\) \verb+\heartsuit+\\
\(\spadesuit\) \verb+\spadesuit+\\
\end{multicols}

\section{OPERADORES BINÁRIOS}
\begin{multicols}{3}
\noindent
\(\pm\) \verb+\pm+\\
\(\mp\) \verb+\mp+\\
\(\setminus\) \verb+\setminus+\\
\(\cdot\) \verb+\cdot+\\
\(\times\) \verb+\times+\\
\(\ast\) \verb+\ast+\\
\(\star\) \verb+\star+\\
\(\diamond\) \verb+\diamond+\\
\(\circ\) \verb+\circ+\\
\(\bullet\) \verb+\bullet+\\
\(\div\) \verb+\div+\\
\(\cap\) \verb+\cap+\\
\(\cup\) \verb+\cup+\\
\(\uplus\) \verb+\uplus+\\
\(\sqcap\) \verb+\sqcap+\\
\(\sqcup\) \verb+\sqcup+\\
\(\triangleleft\) \verb+\triangleleft+\\
\(\triangleright\) \verb+\triangleright+\\
\(\wr\) \verb+\wr+\\
\(\bigcirc\) \verb+\bigcirc+\\
\(\bigtriangleup\) \verb+\bigtriangleup+\\
\(\bigtriangledown\) \verb+\bigtriangledown+\\
\(\vee\) \verb+\vee+\\
\(\wedge\) \verb+\wedge+\\
\(\oplus\) \verb+\oplus+\\
\(\ominus\) \verb+\ominus+\\
\(\otimes\) \verb+\otimes+\\
\(\oslash\) \verb+\oslash+\\
\(\odot\) \verb+\odot+\\
\(\dagger\) \verb+\dagger+\\
\(\ddagger\) \verb+\ddagger+\\
\(\amalg\) \verb+\amalg+\\
\end{multicols}

\section{RELAÇÕES}
\begin{multicols}{3}
\noindent
\(\leq\) \verb+\leq+\\
\(\prec\) \verb+\prec+\\
\(\preceq\) \verb+\preceq+\\
\(\ll\) \verb+\ll+\\
\(\subset\) \verb+\subset+\\
\(\subseteq\) \verb+\subseteq+\\
\(\sqsubseteq\) \verb+\sqsubseteq+\\
\(\in\) \verb+\in+\\
\(\vdash\) \verb+\vdash+\\
\(\smile\) \verb+\smile+\\
\(\frown\) \verb+\frown+\\
\(\propto\) \verb+\propto+\\
\(\geq\) \verb+\geq+\\
\(\succ\) \verb+\succ+\\
\(\succeq\) \verb+\succeq+\\
\(\gg\) \verb+\gg+\\
\(\supset\) \verb+\supset+\\
\(\supseteq\) \verb+\supseteq+\\
\(\sqsupseteq\) \verb+\sqsupseteq+\\
\(\notin\) \verb+\notin+\\
\(\dashv\) \verb+\dashv+\\
\(\mid\) \verb+\mid+\\
%\(\parallet\) \verb++\\
\(\equiv\) \verb+\equiv+\\
\(\sim\) \verb+\sim+\\
\(\simeq\) \verb+\simeq+\\
\(\asymp\) \verb+\asymp+\\
\(\approx\) \verb+\approx+\\
\(\cong\) \verb+\cong+\\
\(\bowtie\) \verb+\bowtie+\\
\(\ni\) \verb+\ni+\\
\(\models\) \verb+\models+\\
\(\doteq\) \verb+\doteq+\\
\(\perp\) \verb+\perp+\\
\(\not\equiv\) \verb+\not\equiv+\\
\(\notin\) \verb+\notin+\\
\(\ne\) \verb+\ne+\\
\end{multicols}

\section{DELIMITADORES}
\begin{multicols}{3}
\noindent
\((\) \verb+(+\\
\()\) \verb+)+\\
\(\lbrack\) \verb+\lbrack+\\
\(\rbrack\) \verb+\rbrack+\\
\(\lbrace\) \verb+\lbrace+ ou \verb+\{+\\
\(\rbrace\) \verb+\rbrace+ ou \verb+\}+\\
\(\langle\) \verb+\langle+\\
\(\rangle\) \verb+\rangle+\\
\(\vert\) \verb+\vert+\\
\(\Vert\) \verb+\Vert+\\
\([\![\) \verb+[\![+\\
\(]\!]\) \verb+]\!]+\\
\(\lfloor\) \verb+\lfloor+\\
\(\rfloor\) \verb+\rfloor+\\
\((\!(\) \verb+(\!(+\\
\()\!)\) \verb+)\!)+\\
\(\lceil\) \verb+\lceil+\\
\(\rceil\) \verb+\rceil+\\
\(\langle\!\langle\) \verb+\langle\!\langle+\\
\(\rangle\!\rangle\) \verb+\rangle\!\rangle+\\
\end{multicols}

\section{SETAS}
\begin{multicols}{2}
\noindent
\(\leftarrow\) \verb+\leftarrow+\\
\(\longleftarrow\) \verb+\longleftarrow+\\
\(\Leftarrow\) \verb+\Leftarrow+\\
\(\Longleftarrow\) \verb+\Longleftarrow+\\
\(\rightarrow\) \verb+\rightarrow+\\
\(\longrightarrow\) \verb+\longrightarrow+\\
\(\Rightarrow\) \verb+\Rightarrow+\\
\(\Longrightarrow\) \verb+\Longrightarrow+\\
\(\leftrightarrow\) \verb+\leftrightarrow+\\
\(\longleftrightarrow\) \verb+\longleftrightarrow+\\
\(\Leftrightarrow\) \verb+\Leftrightarrow+\\
\(\Longleftrightarrow\) \verb+\Longleftrightarrow+\\
\(\mapsto\) \verb+\mapsto+\\
\(\longmapsto\) \verb+\longmapsto+\\
\(\hookleftarrow\) \verb+\hookleftarroq+\\
\(\hookrightarrow\) \verb+\hookrightarrow+\\
\(\uparrow\) \verb+\uparrow+\\
\(\Uparrow\) \verb+\Uparrow+\\
\(\downarrow\) \verb+\downarrow+\\
\(\Downarrow\) \verb+\Downarrow+\\
\(\updownarrow\) \verb+\updownarrow+\\
\(\Updownarrow\) \verb+\Updownarrow+\\
\(\nearrow\) \verb+\nearrow+\\
\(\searrow\) \verb+\searrow+\\
\(\nwarrow\) \verb+\nwarrow+\\
\(\swarrow\) \verb+\swarrow+\\
\end{multicols}

\printindex
\end{document}
%</driver>
% \fi
%<*class>
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{fei}[2016/09/02 2.0.1 Modelo da FEI]
\LoadClass{report}
% passa a opção do xindy pros pacotes que podem utilizá-lo
\DeclareOption{xindy}{
  \PassOptionsToPackage{\CurrentOption}{imakeidx}
  \PassOptionsToPackage{\CurrentOption}{glossaries}
}

% opções rascunho e final controlam a exibição da folha
% de aprovação e ficha catalográfica
\newif\ifrascunho
\rascunhotrue
\DeclareOption{rascunho}
{
\rascunhofalse
}

\newif\ifsublist
\sublistfalse
\DeclareOption{sublist}
{
  \sublisttrue
}

\newif\ifarial
\DeclareOption{arial}
{
  \arialtrue
}

\DeclareOption{times}
{
  \arialfalse
}

\newif\iftwoside
\twosidefalse
\DeclareOption{twoside}
{
  \twosidetrue
}

\DeclareOption{algo-as-figure}
{
  \PassOptionsToPackage{figure}{algorithm2e}
}

% https://tex.stackexchange.com/questions/229355/algorithm-algorithmic-algorithmicx-algorithm2e-algpseudocode-confused

% \newif\iffemaleadvisor
% \DeclareOption{male-advisor}
% {
%   \femaleadvisorfalse
% }

% \DeclareOption{female-advisor}
% {
%   \femaleadvisortrue
% }

% \newif\iffemaleauthor
% \DeclareOption{male-author}
% {
%   \femaleauthorfalse
%   \def\@advised{Orientado}
% }

% \DeclareOption{female-author}
% {
%   \femaleauthortrue
%   \def\@advised{Orientada}
% }

% \DeclareOption{bacharelado}
% {
%   \def\@tipo{Trabalho de Conclus\~ao de Curso, apresentado}
%   \def\@grau{Bacharel}
% }

% \DeclareOption{especializacao}
% {
%   \def\@tipo{Monografia, apresentada}
%   \def\@grau{Especialista}
% }

% \DeclareOption{mestrado}
% {
%   \def\@tipo{Disserta\c{c}\~ao de Mestrado, apresentada}
%   \def\@grau{Mestre}
% }

% \DeclareOption{doutorado}
% {
%   \def\@tipo{Tese de Doutorado, apresentada}
%   \iffemaleauthor
%     \def\@grau{Doutora}
%   \else
%     \def\@grau{Doutor}
%   \fi
% }

\ExecuteOptions{times} % processa opções-padrão

\ProcessOptions\relax % processa todas as opções

\RequirePackage[utf8]{inputenc}
\RequirePackage{csquotes}

% tamanho do papel (A4) e margens
% \setlength{\paperheight}{297mm}
% \setlength{\paperwidth}{210mm}
\renewcommand{\normalsize}{\fontsize{12pt}{14.4pt}\selectfont} % fonte do texto
\renewcommand{\footnotesize}{\fontsize{10pt}{12pt}\selectfont} % fonte das notas de rodapé
\RequirePackage[a4paper,top=3cm,bottom=2cm,left=3cm,right=2cm,bindingoffset=0cm,nofoot]{geometry}

% cabecalho e rodape
\RequirePackage{fancyhdr}
\pagenumbering{arabic} % estilo da numeração das páginas
\pagestyle{fancy} % estilo dos cabeçalhos/rodapés
\fancyhf{}
\renewcommand{\footrulewidth}{0pt}
\renewcommand{\headrulewidth}{0pt}
\fancyhead[RO,LE]{\footnotesize\thepage}% numero da página em fonte menor que a do texto
\setlength{\headheight}{14.4pt}

% carrega idiomas e caracteres de saída de 8 bits
\RequirePackage[english,brazil]{babel}
\RequirePackage[T1]{fontenc}

% espaçamento do texto
\RequirePackage{setspace}
% espacamento de 1,5 (mais parecido com o padrão do Word)
\spacing{1.45}
\setlength{\parindent}{1.25cm} % recuo do paragrafo

\RequirePackage[font={singlespacing},format=hang, justification=raggedright,labelsep=endash,singlelinecheck=false]{caption} % fontes das legendas

\selectlanguage{brazil} % idioma do documento

% linhas orfas e viuvas (verificar o limite)
\widowpenalty=10000
\clubpenalty=10000

% outros pacotes
\RequirePackage{mathtools} % matematica
\RequirePackage{lmodern} % Latin Modern, fontes tipográficas mais recentes que as do Knuth (Computer Modern)
\RequirePackage{icomma} % vírgula como separador decimal

\ifarial
  % \RequirePackage{helvet}
  \usepackage[scaled]{uarial}
  \renewcommand*\familydefault{\sfdefault} %% Only if the base font of the document is to be sans serif
\else
  \RequirePackage{times} % usar fonte times no texto todo
\fi

\RequirePackage{graphicx}      % figuras
\RequirePackage{morewrites}    % permite ao LaTeX escrever em mais de 16 arquivos auxiliares simultaneamente

% pacote de algoritmos e tradução dos comandos
\RequirePackage[plain,portuguese,algochapter,linesnumbered,inoutnumbered]{algorithm2e}
\SetKwInput{Entrada}{Entrada}
\SetKwInput{Saida}{Sa\'ida}
\SetKwInput{Dados}{Dados}
\SetKwInput{Resultado}{Resultado}
\SetKw{Ate}{at\'e}
\SetKw{Retorna}{retorna}
\SetKwBlock{Inicio}{in\'icio}{fim}
\SetKwIF{Se}{SenaoSe}{Senao}{se}{ent\~ao}{sen\~ao se}{sen\~ao}{fim se}
\SetKwSwitch{Selec}{Caso}{Outro}{selecione}{faça}{caso}{sen\~ao}{fim caso}{fim selec}
\SetKwFor{Para}{para}{fa\c{c}a}{fim para}
\SetKwFor{ParaPar}{para}{fa\c{c}a em paralelo}{fim para}
\SetKwFor{ParaCada}{para cada}{fa\c{c}a}{fim para cada}
\SetKwFor{ParaTodo}{para todo}{fa\c{c}a}{fim para todo}
\SetKwFor{Enqto}{enquanto}{fa\c{c}a}{fim enqto}
\SetKwRepeat{Repita}{repita}{at\'e}

%outras opções do pacote de algoritmos
\renewcommand{\@algocf@capt@plain}{above} % legenda acima
\SetAlgoCaptionSeparator{ --} % separador da legenda
\SetAlCapSty{} % estilo da primeira parte da legenda (remove negrito padrão)
\SetAlCapFnt{\normalsize} % fonte da primeira parte da legenda
% \SetAlCapSkip{10pt} % espaçamento entre algoritmo e legenda
% teoremas
\RequirePackage{amsthm,thmtools}
\renewcommand{\listtheoremname}{Lista de Teoremas} % traduz nome da lista de teoremas

\declaretheoremstyle[
spaceabove=6pt, spacebelow=6pt,
headfont=\normalfont\bfseries,
notefont=\normalfont\bfseries, notebraces={-- }{},
bodyfont=\normalfont,
postheadspace=1em
% qed=\qedsymbol
]{feistyle}

% declaração dos principais tipos de teoremas que o usuário pode querer vir a usar
\declaretheorem[style=feistyle,name=Axioma]{axioma}
\declaretheorem[style=feistyle,name=Teorema]{teorema}
\declaretheorem[style=feistyle,name=Lema]{lema}
\declaretheorem[style=feistyle,name=Hip\'otese]{hipotese}
\declaretheorem[style=feistyle,name=Proposi\c{c}\~ao]{proposicao}
\declaretheorem[style=feistyle,name=Conjectura]{conjectura}
\declaretheorem[style=feistyle,name=Paradoxo]{paradoxo}
\declaretheorem[style=feistyle,name=Corol\'ario]{corolario}
\declaretheorem[style=feistyle,name=Defini\c{c}\~ao]{definicao}
\declaretheorem[style=feistyle,name=Exemplo]{exemplo}
\declaretheorem[style=remark,name=Demonstra\c{c}\~ao,qed=\qedsymbol,numbered=no]{prova}

% contadores de floats serão contínuos
\usepackage{chngcntr}
\counterwithout{figure}{chapter}
\counterwithout{table}{chapter}
\counterwithout{algocf}{chapter}
\counterwithout{equation}{chapter}

% configuracao da legenda da figura
\renewcommand{\figurename}{\fontsize{10pt}{10pt}\selectfont Figura}
\renewcommand{\tablename}{\fontsize{10pt}{10pt}\selectfont Tabela}
% listas
\RequirePackage{enumitem}
\setlist[1]{align=left,labelindent=\parindent,labelwidth=*,labelsep=0.5em,label={\alph*)},ref=\theenumi}
\setlist[2]{align=left,labelindent=\parindent,labelwidth=*,labelsep=0.5em,label={--},ref=\theenumii}
\renewenvironment{itemize}{\begin{enumerate}}{\end{enumerate}} % troca o itemize pelo enumerate (seguindo o manual da biblioteca)

\renewcommand{\floatpagefraction}{.8} % página terá apenas floats se o float ocupar pelo menos 80% da página

% divisoes do texto
\renewcommand{\part}{% não usado no texto, só para algumas páginas (resumo, abstract, agradecimentos...)
\@startsection{part}{-1}{0pt}{2\baselineskip}{2\baselineskip}{\cleardoublepage\fontsize{12pt}{14.4pt}\centering\bf\MakeUppercase}}

% não há recuo no título de nenhum nível de nenhuma seção
% títulos dos capítulos são em negrito, maiúsculo e com distâncias de 1,5 cm do parágrafo que o sucede
\renewcommand{\chapter}{\cleardoublepage\pagestyle{fancy}%
\@startsection{chapter}{0}{0pt}{\baselineskip}{\baselineskip}{\fontsize{12pt}{14.4pt}\bfseries\MakeUppercase}}

% demais níveis de seção possuem distância de 1,5 linhas do parágrafo sucessor e predecessor
\renewcommand{\section}{%
\@startsection{section}{1}{0pt}{\baselineskip}{\baselineskip}{\fontsize{12pt}{14.4pt}\MakeUppercase}}

\renewcommand{\subsection}{%
\@startsection{subsection}{2}{0pt}{\baselineskip}{\baselineskip}{\fontsize{12pt}{14.4pt}\bfseries}}

\renewcommand{\subsubsection}{%
\@startsection{subsubsection}{3}{0pt}{\baselineskip}{\baselineskip}{\fontsize{12pt}{14.4pt}\bfseries\itshape}}

\renewcommand{\paragraph}{%
\@startsection{paragraph}{4}{0pt}{\baselineskip}{\baselineskip}{\fontsize{12pt}{14.4pt}\it}}

\setcounter{secnumdepth}{4} % numerar divisões até o quarto nível (paragraph)
\setcounter{tocdepth}{4} % incluir divisões no sumário até o quarto nível (paragraph)

%% configuracao do sumario e listas de tabelas e figuras
\RequirePackage[titles]{tocloft} % para poder fazer mais coisas no sumario e nas listas

\tocloftpagestyle{empty} % remove numeração das páginas controladas pelo tocloft

% formata títulos do sumário e listas de figuras e tabelas
\renewcommand{\cfttoctitlefont}{\hfil\bf\MakeUppercase}
\renewcommand{\cftloftitlefont}{\hfill\bf\MakeUppercase}
\renewcommand{\cftlottitlefont}{\hfill\bf\MakeUppercase}
\renewcommand{\cftafterloftitle}{\hfill}
\renewcommand{\cftafterlottitle}{\hfill}

% entradas no sumário não possuem recuo
\renewcommand{\cftchapindent}{0pt}
\renewcommand{\cftsecindent}{0pt}
\renewcommand{\cftsubsecindent}{0pt}
\renewcommand{\cftsubsubsecindent}{0pt}
\renewcommand{\cftparaindent}{0pt}

\renewcommand{\cftchapnumwidth}{\cftparanumwidth}
\renewcommand{\cftsecnumwidth}{\cftparanumwidth}
\renewcommand{\cftsubsecnumwidth}{\cftparanumwidth}
\renewcommand{\cftsubsubsecnumwidth}{\cftparanumwidth}
\renewcommand{\cftparanumwidth}{4em}

\renewcommand{\cftbeforechapskip}{0pt} % remove recuo antes de entradas de capítulos no sumário
%
%\renewcommand{\cftchapnumwidth}{\cftsubsubsecnumwidth}
\renewcommand{\cftchapfont}{\bfseries} % coloca o titulo de capítulos em negrito
\renewcommand{\cftchappagefont}{} % o número da página dos capítulos não é em negrito
%\renewcommand{\cftsecnumwidth}{\cftsubsubsecnumwidth}
%\renewcommand{\cftsubsecnumwidth}{\cftsubsubsecnumwidth}
\renewcommand{\cftsubsecfont}{\bfseries} % coloca o titulo das secoes em negrito
%\renewcommand{\cftsubsubsecnumwidth}{3em}
\renewcommand{\cftsubsubsecfont}{\bfseries\itshape} % coloca o titulo das secoes em negrito
\renewcommand{\cftparafont}{\itshape} % coloca o titulo das secoes em negrito
\renewcommand{\cftpartleader}{\cftdotfill{\cftdotsep}} % pontos no sumário para partes
\renewcommand{\cftchapleader}{\cftdotfill{\cftdotsep}} % pontos no sumário para capítulos

\setlength{\cftfignumwidth}{7.2em} % espaço onde a palavra "Ilustração" é escrita
\setlength{\cfttabnumwidth}{5.7em} % espaço onde a palavra "Tabela" é escrita
\renewcommand{\cftfigpresnum}{Ilustra\c{c}\~ao } % escrita que precede cada entrada na lista de ilustrações
\renewcommand{\cfttabpresnum}{Tabela } % escrita que precede cada entrada na lista de tabelas
\renewcommand{\cftfigaftersnum}{ --} % traço na frente da escrita que precede as entradas na lista de ilustrações
\renewcommand{\cfttabaftersnum}{ --} % traço na frente da escrita que precede as entradas na lista de tabelas

% o código para a remoção da numeração das páginas do sumários e das listas em
% geral foi retirado daqui:
% https://tex.stackexchange.com/questions/129608/page-numbering-problem/129614#129614

% redefine sumário e listas de figuras e tabelas, removendo numeração das
% páginas e adicionando os títulos certos das páginas
\renewcommand{\tableofcontents}{\part*{\contentsname}\pagestyle{empty}\@starttoc{toc}\cleardoublepage}
\renewcommand{\listoftables}{\part*{\listtablename}\pagestyle{empty}\@starttoc{lot}\cleardoublepage}
\renewcommand{\listoffigures}{\part*{\listfigurename}\pagestyle{empty}\@starttoc{lof}\cleardoublepage}

% redefinindo listas de algoritmos e teoremas para formatar os títulos das
% páginas e adicionar 'algoritmo' e 'teorema' antes dos números de cada entrada
% das listas
\renewcommand{\listofalgorithms}{\begingroup%
\let\oldnumberline\numberline%
\renewcommand{\numberline}{Algoritmo~\oldnumberline}%
\part*{\listalgorithmcfname}\pagestyle{empty}\@starttoc{loa}\cleardoublepage\endgroup}

\renewcommand{\listoftheorems}{\begingroup%
\let\oldnumberline\numberline%
\renewcommand{\numberline}{Teorema~\oldnumberline}%
\part*{\listtheoremname}\thispagestyle{empty}\@starttoc{loe}\cleardoublepage\endgroup}

\def\and{\\} % modifica função do comando \and para ele ser usado na declaração de múltiplos autores

% novas paginas
% capa
\renewcommand{\maketitle}{
\pagestyle{empty}
\begin{center}
\textbf{
\MakeUppercase{\@instituicao}\\[\baselineskip]
\uppercase\expandafter{\@author}
\vfill
\MakeUppercase{\@title}\ifthenelse{\isundefined{\@subtitulo}}{}{: \@subtitulo}}
\vfill
\@cidade\\
\number\year%
\end{center}
\cleardoublepage
}

% comando folha de rosto, com texto automatizado
% \newcommand{\folhaderosto}{
% \clearpage
% \thispagestyle{empty}
% \begin{center}
% \uppercase\expandafter{\@author}\\
% \vspace*{0.328\textheight}
% \textbf{\MakeUppercase{\@title}}\ifthenelse{\isundefined{\@subtitulo}}{}{: \@subtitulo}
% \vspace*{0.145\textheight}
% \begin{flushright}
% \begin{minipage}{0.55\textwidth}{
% \begin{singlespace}
% \@tipo\ ao \@instituicao, como parte dos requisitos necess\'arios para obten\c{c}\~ao do t\'itulo de \@grau\ em \@curso, \@advised\ \iffemaleadvisor\ pela \else pelo \fi Prof. \@advisor.
% \end{singlespace}}
% \end{minipage}
% \end{flushright}
% \vfill
% \@cidade\\
% \number\year
% \end{center}}

% folha de rosto
\newenvironment{folhaderosto}{
\setcounter{page}{1}
\thispagestyle{empty}
\begin{center}
\uppercase\expandafter{\@author}\\
\vspace*{0.45\textheight}
\textbf{\MakeUppercase{\@title}}\ifthenelse{\isundefined{\@subtitulo}}{}{: \@subtitulo}
\vfill
\begin{flushright}
\begin{minipage}{0.55\textwidth}}{\end{minipage}{}
\end{flushright}
\vfill
\@cidade\\
\number\year
\end{center}%
\clearpage}

% folha de aprovação: procura o arquivo *ata.pdf* e inclui no texto
% se a classe recebeu a opção rascunho, deixa um texto no lugar falando que pagina é essa
\RequirePackage{pdfpages}
\RequirePackage{ifthen}
\newcommand{\folhadeaprovacao}{
	\ifrascunho
	  \includepdf{ata.pdf}\cleardoublepage
	\else
	  \thispagestyle{empty}\mbox{}\vfill\begin{center}\begin{Huge}Folha de aprova\c{c}\~{a}o\end{Huge}\vfill\end{center}\cleardoublepage
	\fi
}

% ficha catalográfica: funciona da mesma forma da folha de aprovação, só que procura o arquivo *ficha.pdf*
\newcommand{\fichacatalografica}{
  \iftwoside
  \else
    % se não for frente e verso, a ficha catalográfica não é contada no verso da folha de rosto
    \addtocounter{page}{-1}
  \fi
	\ifrascunho
		\includepdf{ficha.pdf}\cleardoublepage
	\else
	  \thispagestyle{empty}\mbox{}\vfill\begin{center}\begin{Huge}Ficha catalogr\'{a}fica\end{Huge}\vfill\end{center}\cleardoublepage
	\fi
}

% subtítulo
\newcommand{\subtitulo}[1]{\def\@subtitulo{#1}}

\newcommand{\smallcaption}[1]{\captionsetup{font=small}\caption*{#1}}

% cidade (padrão São Bernardo do Campo)
\def\@cidade{S\~ao Bernardo do Campo}
\newcommand{\cidade}[1]{\def\@cidade{#1}}

% instituicao (padrão Centro Universitário FEI)
\def\@instituicao{Centro Universit\'ario FEI}
\newcommand{\instituicao}[1]{\def\@instituicao{#1}}

% nome do orientador com respectivo título (ex Dr. ...)
\newcommand{\advisor}[1]{\def\@advisor{#1}}

% curso
\def\@curso{Coisa Nenhuma}
\newcommand{\curso}[1]{\def\@curso{#1}}

% dedicatória
\newcommand{\dedicatoria}[1]{
\cleardoublepage
\thispagestyle{empty}
\begin{flushleft}
\vspace*{\fill}
\hspace*{0.4\paperwidth\relax}
\begin{minipage}[l]{0.5\textwidth}
#1
\end{minipage}
\end{flushleft}
}

% epígrafe
\newcommand{\epigrafe}[2]{
\cleardoublepage
\thispagestyle{empty}
\begin{flushleft}
\vspace*{\fill}
\hspace*{0.4\paperwidth\relax}
\begin{minipage}[l]{0.5\textwidth}
``{#1}''\\#2
\end{minipage}
\end{flushleft}
}

% resumo
\newenvironment{resumo}{\part*{Resumo}\pagestyle{empty}\begin{spacing}{1.1}\noindent\normalsize}{\end{spacing}\cleardoublepage\pagestyle{fancy}}

% abstract
\renewenvironment{abstract}{\selectlanguage{english}\part*{Abstract}\pagestyle{empty}\begin{spacing}{1.1}\noindent\normalsize}{\end{spacing}\cleardoublepage\pagestyle{fancy}\selectlanguage{brazil}}

% agradecimentos
\newenvironment{agradecimentos}{\part*{Agradecimentos}\pagestyle{empty}}{\cleardoublepage\pagestyle{fancy}}

% índice
\RequirePackage{imakeidx}
\renewcommand{\indexname}{\'Indice}
\let\oldmakeindex\makeindex
\let\oldprintindex\printindex
\renewcommand{\makeindex}{\oldmakeindex[title=\hfill \'INDICE \hfill \mbox{}]}
\renewcommand{\printindex}{\addcontentsline{toc}{chapter}{\hspace{\cftsubsubsecnumwidth}\'INDICE}%
\renewcommand{\chapter}{%
\@startsection{chapter}{0}{0pt}{0pt}{1.5cm}{\clearpage\fontsize{12pt}{14.4pt}\bf\MakeUppercase}}%
\oldprintindex}%

% hyperlinks entre partes do documento
% deve ser o último a ser carregado, exceto pelo abntex2cite, simplesmente porque deu erro quando tentei
% funcionou posicionado antes do glossaries, possibilitando links das variaveis para lista de simbolos
\RequirePackage[pdftex,pdfborder={0 0 0},colorlinks={false}]{hyperref}

% pacote para gerar listas (símbolos, abreviaturas, etc)
\ifsublist
  \RequirePackage[symbols,nomain,acronym,nonumberlist]{glossaries}
  % estilo usado como base
  \setglossarystyle{alttree}
  % Configuracao de identacao do nivel 0 (titulos)
  \glssetwidest[0]{}
  % Configuracao de identacao do nivel 1 (a lista de simbolos em si)
  \glssetwidest[1]{aaaaaaaaaaaa}

  % remove número de página das listas de símbolos e abreviaturas (executado na primeira página)
  \renewcommand*{\glossarypreamble}{\thispagestyle{empty}\pagestyle{empty}\vspace*{-2\baselineskip}}

\else
  \RequirePackage[symbols,nomain,acronym,nonumberlist,nogroupskip]{glossaries}

  \newglossarystyle{mylong}{%
    \setglossarystyle{long}% base this style on the long style
    \renewenvironment{theglossary}{%
      \begin{longtable*}{lp{\glsdescwidth}}}%
    {\end{longtable*}}%
  }%

  \setglossarystyle{mylong}
  \renewcommand{\glsnamefont}[1]{\textbf{#1}}
  \setlength\LTleft{0pt}
  \setlength\LTright{0pt}
  \setlength\glsdescwidth{\linewidth}

  % remove número de página das listas de símbolos e abreviaturas (executado na primeira página)
  \renewcommand*{\glossarypreamble}{\thispagestyle{empty}\pagestyle{empty}}
\fi

\addto\captionsbrazil{%
  \renewcommand*{\listfigurename}{Lista de Ilustra\c{c}\~oes}%
  \renewcommand*{\contentsname}{Sum\'ario}%
  \renewcommand*{\acronymname}{\hfill Lista de Abreviaturas \hfill \mbox{}}%
  \renewcommand*{\glssymbolsgroupname}{\hfill Lista de S\'imbolos \hfill \mbox{}}}

% remove número de página das listas de símbolos e abreviaturas (executado nas demais páginas)
\renewcommand*{\glsclearpage}{\pagestyle{empty}}
% remove número de página das listas de símbolos e abreviaturas (executado na última página)
\renewcommand*{\glossarypostamble}{\pagestyle{empty}\cleardoublepage}


\newcommand{\palavraschave}[1]{\mbox{}\\\noindent Palavras-chave: #1}% o resumo pede palavras chave no final
\newcommand{\keywords}[1]{\mbox{}\\\noindent Keywords: #1}% mesma coisa, mas pro abstract

% apendice novo
\renewcommand{\appendix}{%
\renewcommand{\chaptername}{\appendixname}%
\setcounter{chapter}{0}% zera o contador do capítulo
\renewcommand{\thechapter}{\Alph{chapter}}% deixa o contador do capítulo em alfabético
\renewcommand{\chapter}[1]{% redefine o comando do capítulo
\stepcounter{chapter}% soma 1 ao contador do capítulo
\clearpage\phantomsection\thispagestyle{empty}\mbox{}\vfill\begin{center}\MakeUppercase{\textbf{AP\^ENDICE \thechapter\ --} ##1}\end{center}\vfill% adiciona uma folha com a letra e título do apêndice
\addcontentsline{toc}{chapter}{\hspace{\cftparanumwidth}AP\^ENDICE \Alph{chapter} -- ##1}%
\newpage%
}%
}%

% anexo (funciona da mesma forma do apendice, soh alterando os nomes)
\newcommand{\anexos}{%
\renewcommand{\chaptername}{Anexo}%
\setcounter{chapter}{0}%
\renewcommand{\thechapter}{\Alph{chapter}}%
\renewcommand{\chapter}[1]{%
\stepcounter{chapter}%
\clearpage\phantomsection\thispagestyle{empty}\mbox{}\vfill\begin{center}\MakeUppercase{\textbf{ANEXO \thechapter\ --} ##1}\end{center}\vfill%
\phantomsection%
\addcontentsline{toc}{chapter}{\hspace{\cftparanumwidth}ANEXO \Alph{chapter} -- ##1}%
\newpage%
}%
}%

% referências e citações
%abnTeX alfabético com títulos das publicações em negrito nas referências (como no modelo antigo da ABNT)
\RequirePackage[alf,abnt-emphasize=bf,abnt-repeated-author-omit=yes,abnt-thesis-year=title]{abntex2cite}
\newcommand*{\citefloat}[1]{\citeauthoronline{#1}, \citeyear{#1}}

% modifica ambiente quote para citações de um parágrafo com mais de 3 linhas
\renewenvironment{quote}
               {\begin{singlespace}\list{}{%
               \fontsize{10pt}{1em}%
               \leftmargin=4cm}%
               \item\relax\ignorespaces}
               {\endlist\end{singlespace}}

% quotation é igual a quote, porém para citações com mais de um parágrafo.
\renewenvironment{quotation}
               {\begin{singlespace}\list{}{%
               \fontsize{10pt}{1em}%
               \leftmargin=2cm \rightmargin=2cm%
               \listparindent .5cm \itemindent}%
                \item\relax}
               {\endlist\end{singlespace}}

% espaçamento entre itens da bibliografia
% qualquer um dos dois comandos abaixo modifica o espaçamento entre referências bibliográficas
% o primeiro modifica o espaçamento entre itens e o segundo, entre parágrafos
% pode-se mudar um ou o outro, dependendo da influência que eles terão na formatação geral do trabalho
\newlength{\bibitemsep}\setlength{\bibitemsep}{18pt}
\newlength{\bibparskip}\setlength{\bibparskip}{0pt} % zera o espaço entre parágrafos
\let\oldthebibliography\thebibliography
\renewcommand\thebibliography[1]{%
  \oldthebibliography{#1}%
  \setlength{\parskip}{\bibparskip}%
  \setlength{\itemsep}{\bibitemsep}%
}

\let\oldbibliography\bibliography
\renewcommand{\bibliography}[1]{%
\renewcommand{\bibname}{\hfill Refer\^encias \hfill\mbox{}}% muda o nome do titulo (modelo da biblioteca)
\clearpage\phantomsection\addcontentsline{toc}{chapter}{\hspace{\cftparanumwidth}\mdseries REFER\^ENCIAS}% adiciona o titulo ao sumario
\oldbibliography{#1}% adiciona realmente a bibliografia
}
%</class>
