%% %% Customizações do abnTeX2 (https://github.com/abntex/abntex2) para a Universidade Federal de Viçosa %% %% Baseado no "Manual de Normalização de Trabalhos Acadêmicos" da Biblioteca %% Central da UFV (edição 2026-2), conforme ABNT NBR 14724/2025, NBR 6023/2025 e %% NBR 10520/2023. %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 %% of this license or (at your option) any later version. %% The latest version of this license is in %% http://www.latex-project.org/lppl.txt %% and version 1.3 or later is part of all distributions of LaTeX %% version 2005/12/01 or later. %% %% This work has the LPPL maintenance status `maintained'. %% %% The Current Maintainer of this work is Rodrigo Smarzaro (smarzaro@ufv.br) %% %% Further information about abnTeX2 are available on https://github.com/abntex/abntex2/ %% % --- % INICIO DAS CUSTOMIZACOES PARA A UNIVERSIDADE FEDERAL DE VIÇOSA % --- \NeedsTeXFormat{LaTeX2e}[2022/06/01] \ProvidesPackage{abntex2-ufv}[2026/11/02 v1.8 abnTeX2-UFV (obsoleto: use a classe abntex2-ufv)] % Este pacote só faz sentido sobre a classe abntex2 \@ifclassloaded{abntex2}{}{% \PackageError{abntex2-ufv}{Este pacote requer a classe abntex2}{% Use \string\documentclass{abntex2} antes de carregar abntex2-ufv.}% } % Versão de transição (1.5): carregar este arquivo diretamente com \usepackage está obsoleto. % Use \documentclass{abntex2-ufv}; o .sty será descontinuado na versão 2.0 do pacote. \ifdefined\ufv@viacls\else \PackageWarningNoLine{abntex2-ufv}{% Uso obsoleto: \string\usepackage{abntex2-ufv} sera descontinuado na versao 2.0.\MessageBreak Migre para \string\documentclass{abntex2-ufv} (veja o guia, secao de migracao)}% \fi \RequirePackage{etoolbox} % --- % Opções % fonte=times (padrão) Times 12 (TeX Gyre Termes) % fonte=arial Arial 12 (TeX Gyre Heros, métrica compatível com Helvetica/Arial) % fonte=cm mantém a fonte do documento (Computer Modern ou a definida pelo usuário) % capacampus imprime campus e curso na capa (não são exigidos pelo manual) % Carregado pela classe abntex2-ufv, as opções já foram lidas por ela (\ufv@fonte e % \ifufv@capacampus). Só no uso obsoleto, direto com \usepackage, o pacote as lê (kvoptions). % --- \ifdefined\ufv@viacls\else \RequirePackage{kvoptions} \SetupKeyvalOptions{family=ufv, prefix=ufv@} \DeclareStringOption[times]{fonte} \DeclareBoolOption{capacampus} \ProcessKeyvalOptions* \fi % --- % Fonte (manual UFV 4.1: Arial ou Times, tamanho 12, cor preta) % --- \ifdefstring{\ufv@fonte}{times}{% \RequirePackage{tgtermes}% }{% \ifdefstring{\ufv@fonte}{arial}{% \RequirePackage{tgheros}% \renewcommand{\familydefault}{\sfdefault}% }{% \ifdefstring{\ufv@fonte}{cm}{}{% \PackageWarning{abntex2-ufv}{Valor desconhecido para fonte: \ufv@fonte\space (use times, arial ou cm); mantida a fonte do documento}% }% }% } % --- % Títulos das seções (NBR 6024; manual UFV 4.3.2 e 4.5): todos no tamanho do % texto e na mesma família da fonte, diferenciados por caixa, negrito e itálico. % primária (\chapter): negrito, caixa alta | secundária: negrito % terciária: normal | quaternária e quinária: itálico % --- \renewcommand{\ABNTEXchapterfont}{\normalfont\bfseries} \renewcommand{\ABNTEXchapterfontsize}{\normalsize} \renewcommand{\ABNTEXsectionfont}{\normalfont\bfseries} \renewcommand{\ABNTEXsectionfontsize}{\normalsize} \renewcommand{\ABNTEXsubsectionfont}{\normalfont} \renewcommand{\ABNTEXsubsectionfontsize}{\normalsize} \renewcommand{\ABNTEXsubsubsectionfont}{\normalfont\itshape} \renewcommand{\ABNTEXsubsubsubsectionfont}{\normalfont\itshape} \setboolean{ABNTEXupperchapter}{true} % --- % Margens (manual UFV 4.2): esquerda e superior 3 cm; direita e inferior 2 cm. % Em impressão frente e verso (twoside) o memoir espelha as margens. % --- \setlrmarginsandblock{3cm}{2cm}{*} \setulmarginsandblock{3cm}{2cm}{*} \checkandfixthelayout % Parágrafo: recuo de 1,25 cm e sem espaço extra entre parágrafos \setlength{\parindent}{1.25cm} \setlength{\parskip}{0pt} % --- % Dados do trabalho % --- \providecommand{\imprimircampus}{} \newcommand{\campus}[1]{\renewcommand{\imprimircampus}{#1}} \providecommand{\imprimircurso}{} \newcommand{\curso}[1]{\renewcommand{\imprimircurso}{#1}} % sigla da instituição de origem dos membros da banca (padrão UFV-CRP) \newcommand{\ufv@siglapadrao}{UFV-CRP} \newcommand{\siglainstituicaopadrao}[1]{\renewcommand{\ufv@siglapadrao}{#1}} % Orientador(a): \orientador[sigla]{Nome} ou \orientadora[sigla]{Nome} \providecommand{\imprimirorientadorsiglainst}{} \newcommand{\ufv@papelorientador}{Orientador} \renewcommand{\orientador}[2][\ufv@siglapadrao]{% \renewcommand{\imprimirorientador}{#2}% \renewcommand{\imprimirorientadorsiglainst}{#1}% \renewcommand{\imprimirorientadorRotulo}{\orientadorname}% \renewcommand{\ufv@papelorientador}{Orientador}} \newcommand{\orientadora}[2][\ufv@siglapadrao]{% \renewcommand{\imprimirorientador}{#2}% \renewcommand{\imprimirorientadorsiglainst}{#1}% \renewcommand{\imprimirorientadorRotulo}{Orientadora:}% \renewcommand{\ufv@papelorientador}{Orientadora}} \newcommand{\coorientadora}[1]{\coorientador[Coorientadora:]{#1}} \renewcommand{\imprimirorientadorRotulo}{\orientadorname} % Banca: \membrobanca[sigla]{Titulação Nome}, repetível quantas vezes for preciso. % A ordem de declaração é a ordem de impressão; o orientador é impresso por último. \newcommand{\ufv@bancacorpo}{} \newcommand{\membrobanca}[2][\ufv@siglapadrao]{% \gappto\ufv@bancacorpo{\assinatura{#2\\(#1)}}} % compatibilidade com a versão 1.x \newcommand{\membrobancaA}[2][\ufv@siglapadrao]{\membrobanca[#1]{#2}} \newcommand{\membrobancaB}[2][\ufv@siglapadrao]{\membrobanca[#1]{#2}} % Data da defesa. Se omitida, a folha de aprovação traz espaço para preenchimento manual. \providecommand{\imprimirdatabanca}{} \newcommand{\databanca}[1]{\renewcommand{\imprimirdatabanca}{#1}} % --- % Natureza do trabalho (nota descritiva da folha de rosto), manual UFV 3.1.2.2. % Uso: \preambuloUFV{tcc|bacharelado|licenciatura}{Nome do curso/título} % tcc relatório final de TCC % bacharelado monografia de graduação (bacharelado) % licenciatura monografia de graduação (licenciatura) % Para outro tipo de trabalho, use diretamente \preambulo{...}. % --- \newcommand{\ufv@nota@tcc}[1]{Relat\'orio final, apresentado \`a \imprimirinstituicao, como parte das exig\^encias para a obten\c{c}\~ao do t\'itulo de #1.} \newcommand{\ufv@nota@bacharelado}[1]{Monografia apresentada ao Curso de \imprimircurso\ da \imprimirinstituicao\ como requisito para obten\c{c}\~ao do t\'itulo de bacharel em #1.} \newcommand{\ufv@nota@licenciatura}[1]{Monografia apresentada ao Curso de \imprimircurso\ da \imprimirinstituicao\ como requisito para obten\c{c}\~ao do t\'itulo de licenciatura em #1.} \newcommand{\preambuloUFV}[2]{% \ifcsname ufv@nota@#1\endcsname \preambulo{\csname ufv@nota@#1\endcsname{#2}}% \else \PackageError{abntex2-ufv}{Tipo de trabalho desconhecido: #1}{% Use tcc, bacharelado ou licenciatura, ou defina \string\preambulo{...} manualmente.}% \fi} % --- % Capa (manual UFV 3.1.1): instituição (opcional), autor, título, local e ano. % --- \renewcommand{\imprimircapa}{% \begin{capa}% \center {\bfseries\large \MakeUppercase{\imprimirinstituicao}}\par \ifufv@capacampus \abntex@ifnotempty{\imprimircampus}{{\bfseries\large \MakeUppercase{\imprimircampus}}\par}% \abntex@ifnotempty{\imprimircurso}{{\bfseries\large \MakeUppercase{\imprimircurso}}\par}% \fi \vspace*{3cm} {\bfseries\large \MakeUppercase{\imprimirautor}} \vspace*{\fill} {\bfseries\large \MakeUppercase{\imprimirtitulo}} \vspace*{\fill} \par {\bfseries\large\MakeUppercase{\imprimirlocal}} \par {\bfseries\large\imprimirdata} \vspace*{1cm} \end{capa} } % --- % Folha de rosto (manual UFV 3.1.2): autor, título, natureza, orientador, % coorientador, local e ano. A natureza fica alinhada do meio da mancha % gráfica para a margem direita, em espaço simples. % --- \renewcommand{\folhaderostocontent}{% \begin{center} {\bfseries\large\MakeUppercase{\imprimirautor}}\par \vspace*{\fill}\vspace*{\fill} {\bfseries\large\MakeUppercase{\imprimirtitulo}}\par \vspace*{\fill} \abntex@ifnotempty{\imprimirpreambulo}{% \hspace{.45\textwidth}% \begin{minipage}{.5\textwidth} \SingleSpacing\small\raggedright \imprimirpreambulo\par \smallskip \abntex@ifnotempty{\imprimirorientador}{% \imprimirorientadorRotulo~\imprimirorientador\par}% \abntex@ifnotempty{\imprimircoorientador}{% \imprimircoorientadorRotulo~\imprimircoorientador\par}% \end{minipage}% }% \vspace*{\fill} \par {\bfseries\large\MakeUppercase{\imprimirlocal}}\par {\bfseries\large\imprimirdata}\par \vspace*{1cm} \end{center} } % --- % Folha de aprovação (manual UFV 3.1.5.1): autor, título, natureza, % "APROVADA:" com a data, banca (titulação e instituição) e, por último, % o orientador. Data e assinaturas são colocadas após a aprovação. % --- \newcommand{\imprimirfolhadeaprovacao}{% \begin{folhadeaprovacao} \begin{center} {\bfseries\large\MakeUppercase{\imprimirautor}}\par \vspace*{\fill}\vspace*{\fill} {\bfseries\large\MakeUppercase{\imprimirtitulo}}\par \vspace*{\fill} \abntex@ifnotempty{\imprimirpreambulo}{% \hspace{.45\textwidth}% \begin{minipage}{.5\textwidth} \SingleSpacing\small\raggedright \imprimirpreambulo \end{minipage}% }% \vspace*{\fill} \end{center} \noindent APROVADA: \ifdefempty{\imprimirdatabanca}{% \rule{1cm}{0.4pt}\ de \rule{3cm}{0.4pt}\ de \rule{1.6cm}{0.4pt}}{% \imprimirdatabanca}. \vspace*{\fill} \ufv@bancacorpo \assinatura{\imprimirorientador\\(\ufv@papelorientador)\\(\imprimirorientadorsiglainst)} \vspace*{\fill} \end{folhadeaprovacao} } % --- % Dedicatória e epígrafe (manual UFV 3.1.6 e 3.1.8): sem título, texto na % parte inferior da folha, alinhado à direita. % --- \renewenvironment{dedicatoria}[1][]{% \ifthenelse{\equal{#1}{}}{% \PRIVATEbookmarkthis{\dedicatorianame}}{\pretextualchapter{#1}}% \vspace*{\fill}% \begin{flushright}\begin{minipage}{.5\textwidth}\raggedleft\SingleSpacing\itshape }{% \end{minipage}\end{flushright}\PRIVATEclearpageifneeded} \renewenvironment{epigrafe}[1][]{% \ifthenelse{\equal{#1}{}}{% \PRIVATEbookmarkthis{\epigraphname}}{\pretextualchapter{#1}}% \vspace*{\fill}% \begin{flushright}\begin{minipage}{.5\textwidth}\raggedleft\SingleSpacing\itshape }{% \end{minipage}\end{flushright}\PRIVATEclearpageifneeded} % --- % Palavras-chave (NBR 6028/2021 e manual UFV 3.1.9): "Palavras-chave:" seguida % dos termos separados por ponto e vírgula e finalizados por ponto. % Uso: \palavraschave{termo um, termo dois, termo três} % --- \newcommand{\ufv@sepchave}{} \newcommand{\ufv@itemchave}[1]{\ufv@sepchave #1\renewcommand{\ufv@sepchave}{; }} \newcommand{\ufv@listachave}[2]{% \par\vspace{\onelineskip}\noindent #1~% \renewcommand{\ufv@sepchave}{}% \docsvlist{#2}.\par} \newcommand{\palavraschave}[1]{\begingroup \let\do\ufv@itemchave\ufv@listachave{Palavras-chave:}{#1}\endgroup} \newcommand{\keywords}[1]{\begingroup \let\do\ufv@itemchave\ufv@listachave{Keywords:}{#1}\endgroup} % --- % Quadros, gráficos e códigos: ilustrações com lista própria % (manual UFV 3.1.11; NBR 14724/2025) % --- \newcommand{\ufv@ilustracao}[4]{% \newfloat{#1}{#2}{#3}% \newlistentry{#1}{#2}{0}% \expandafter\def\csname cft#1name\endcsname{#3\space}% \expandafter\def\csname cft#1aftersnum\endcsname{\hfill\textendash\hfill}% \expandafter\setlength\csname cft#1numwidth\endcsname{\cftfigurenumwidth}% \expandafter\def\csname listof#1sname\endcsname{#4}% \newlistof{listof#1s}{#2}{#4}} \newcommand{\quadroname}{Quadro} \newcommand{\graficoname}{Gr\'afico} \newcommand{\codigoname}{C\'odigo} \ufv@ilustracao{quadro}{loq}{\quadroname}{Lista de quadros} \ufv@ilustracao{grafico}{lgr}{\graficoname}{Lista de gr\'aficos} \ufv@ilustracao{codigo}{loc}{\codigoname}{Lista de c\'odigos} % --- % Listas de siglas e de abreviaturas (manual UFV 3.1.13 e 4.7): recomenda-se uma % lista própria para cada tipo. A primeira ocorrência de uma sigla vem por % extenso, seguida da sigla entre parênteses. % \DeclareAcronym{api}{short = API, long = Interface de Programação de Aplicações} % \ac{api} (1ª vez: "Interface ... (API)"; depois: "API") \acp{api} (plural) % \listadesiglas imprime a Lista de siglas (só as efetivamente usadas) % Abreviaturas (p., ed., art. ...) usam a etiqueta "abreviatura" e \acs{...}: % \DeclareAcronym{art}{short = art., long = artigo, tag = abreviatura} % \listadeabreviaturas imprime a Lista de abreviaturas % --- \RequirePackage{acro} \NewAcroTemplate[heading]{ufv}{\pretextualchapter{\acrolistname}} % Lista em duas colunas alinhadas: sigla à esquerda e significado alinhado verticalmente % (a NBR 14724 só exige a ordem alfabética e o significado por extenso; o formato é livre). % Nomes em outro idioma ficam em itálico: long = \textit{Institute of ...} \acsetup{list/name = {Lista de siglas}, list/heading = ufv, list/template = tabular, templates/colspec = {@{}l@{\hspace{1.5em}}p{.8\linewidth}@{}}} \newcommand{\listadesiglas}{{\renewcommand{\arraystretch}{1.5}% \printacronyms[exclude = abreviatura]}\PRIVATEclearpageifneeded} \newcommand{\listadeabreviaturas}{{\renewcommand{\arraystretch}{1.5}% \printacronyms[name = {Lista de abreviaturas}, include = abreviatura]}% \PRIVATEclearpageifneeded} % --- % Glossário (opcional, pós-textual; manual UFV 3.3.2): termos técnicos com % definições. Uso: \begin{glossario} \termo{Termo}{definição} ... \end{glossario} % --- \newcommand{\glossarioname}{Gloss\'ario} \newcommand{\termo}[2]{\par\noindent\textbf{#1:} #2\par\medskip} \newenvironment{glossario}{% \pretextualchapter{\texorpdfstring{\MakeTextUppercase{\glossarioname}}{\glossarioname}}% \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeTextUppercase{\glossarioname}}{\glossarioname}}% \begin{SingleSpacing}}{\end{SingleSpacing}\clearpage} % --- % Fonte e notas (manual UFV 4.9, NBR 14724/2025): o cabeçalho da ilustração % (tipo, número e título) é centralizado e o rodapé (fonte, legenda e notas) é % alinhado à margem esquerda da ilustração, na mesma largura dela. % --- % (\newcommand com argumento opcional guarda o corpo em \\fonte; copiamos esse corpo) \expandafter\let\expandafter\ufv@fonte@orig\csname\string\fonte\endcsname \renewcommand{\fonte}[2][\fontename]{% \begingroup\normalcaption\captionstyle[\raggedright]{\raggedright}% \setlength{\abovecaptionskip}{0pt}\setlength{\belowcaptionskip}{0pt}% \def\baselinestretch{1}% \ufv@fonte@orig[#1]{#2}\endgroup} % Título, fonte, legenda e nota (NBR 14724): o título identifica a ilustração (acima); % abaixo vêm, nesta ordem, a fonte (obrigatória, mesmo para obra do autor), a legenda % (explica símbolos, siglas, cores ou partes da ilustração) e as notas (observações e % informações complementares). \fonte, \legenda e \nota imprimem "Fonte:", "Legenda:" e % "Nota:" em linhas seguidas, em espaço simples e tamanho 10. \newcommand{\legenda}[1]{\fonte[Legenda]{#1}} % Ambientes ilustracao e tabela: medem o conteúdo e montam, na largura dele, % título (acima) + conteúdo + rodapé (fonte, legenda e notas, alinhado à esquerda). % Mesma ordem de argumentos do \IBGEtab do abntex2: título, [conteúdo], rodapé. % \begin{ilustracao}{\caption{Título}\label{rótulo}}{\fonte{...}\legenda{...}\nota{...}} % \includegraphics{...} (figura, diagrama, gráfico, quadro, código) % \end{ilustracao} % \begin{tabela}{\caption{Título}\label{rótulo}}{\fonte{...}\nota{...}} \begin{tabular}... % \end{tabela} % Use dentro do float correspondente (figure, quadro, grafico, codigo, table). % ilustracao: título centralizado (manual UFV 4.9). tabela: título à esquerda e % conteúdo em tamanho 10 (normas de apresentação tabular do IBGE, como o \IBGEtab). \newsavebox{\ufv@ilbox} \newcommand{\ufv@ilestilocentro}{\normalcaption\captionstyle[\centering]{\centering}} \newcommand{\ufv@ilestiloesquerda}{\hangcaption\captionstyle[\raggedright]{\raggedright}} \newlength{\ufv@ilw} \newlength{\ufv@ilminw} \newenvironment{ufv@ilcaixa}[4]{% \def\ufv@ilestilo{#1}\setlength{\ufv@ilminw}{#2}\def\ufv@iltitulo{#3}\def\ufv@ilrodape{#4}% \begin{lrbox}{\ufv@ilbox}% % Com largura dada, o conteúdo é composto em modo vertical, nessa largura (como no % \linewidth do texto): o listings quebra linhas longas (breaklines) e o título e o % rodapé ficam centralizados/alinhados à largura certa. Sem ela, vale a largura natural. \ifdim\ufv@ilminw>\z@\minipage{\ufv@ilminw}\fi}{% \ifdim\ufv@ilminw>\z@\endminipage\fi \end{lrbox}\par\noindent\hfil \setlength{\ufv@ilw}{\wd\ufv@ilbox}% \ifdim\ufv@ilw<\ufv@ilminw\setlength{\ufv@ilw}{\ufv@ilminw}\fi \begin{minipage}{\ufv@ilw}% \begingroup\def\baselinestretch{1}\selectfont\ufv@ilestilo \setlength{\abovecaptionskip}{0pt}\setlength{\belowcaptionskip}{0.5\onelineskip}% \ufv@iltitulo\par\endgroup \usebox{\ufv@ilbox}\par\nointerlineskip\vskip 0.3\onelineskip \ufv@ilrodape \end{minipage}\hfil\par} \newenvironment{ilustracao}[3][0pt]{% \begin{ufv@ilcaixa}{\ufv@ilestilocentro}{#1}{#2}{#3}}{\end{ufv@ilcaixa}} % (o \ignorespaces descarta a quebra de linha depois de \begin{tabela}{...}{...}: a caixa % está em modo horizontal e o espaço, depois do \ignorespaces do lrbox, deslocaria a tabela) \newenvironment{tabela}[3][0pt]{% \begin{ufv@ilcaixa}{\ufv@ilestiloesquerda}{#1}{#2}{#3}\IBGEtabfontsize\ignorespaces}% {\end{ufv@ilcaixa}} % O argumento opcional [] fixa a largura da ilustração: o conteúdo é composto % (em minipage) nessa largura, e o título e o rodapé ficam alinhados a ela. Use % \begin{ilustracao}[\linewidth] para códigos (lstinputlisting e lstlisting, que então % quebram linhas longas com breaklines=true) e para conteúdos cuja largura natural é % menor que a da página mas que devem ocupá-la. Sem o argumento, a ilustração tem a % largura natural do conteúdo. Conteúdo mais largo que a largura dada gera Overfull \hbox. % Fonte de ilustração produzida pelo próprio autor (manual UFV 4.9) \newcommand{\elaboracaopropria}{\fonte{Elaborado pelo pr\'oprio autor}} % --- % Quadros e tabelas que quebram entre páginas: quadrolongo e tabelalonga (fora de float). % Mesmos argumentos do ilustracao/tabela, mais a especificação das colunas: % \begin{quadrolongo}{\caption[curto]{Título}\label{qua:x}}{\fonte{...}}{} % \\ (repetido no alto de cada página) % \cabecalhofim % % \end{quadrolongo} % O conteúdo é um xltabular (longtable com colunas X) na largura da linha; o documento % carrega \usepackage{xltabular}. O título é o \caption do memoir, como no ilustracao % (mesmo contador, mesma lista e mesmo formato); o rodapé sai só no fim da última página. % Marcas de continuação (normas de apresentação tabular do IBGE): "continua" no pé das % páginas que não são a última, "continuação" acima do cabeçalho repetido e "conclusão" % no fim da última página, todas à direita. \ufvmarcascontinuacao[quadros|tabelas]{sim|nao} % liga ou desliga as marcas (sem o opcional, nos dois ambientes). % --- \newcommand{\continuaname}{continua} \newcommand{\continuacaoname}{continua\c{c}\~ao} \newcommand{\conclusaoname}{conclus\~ao} \newcommand{\cabecalhofim}{\PackageError{abntex2-ufv}{\string\cabecalhofim\space fora de quadrolongo ou tabelalonga}{Use \string\cabecalhofim\space so para separar o cabecalho do corpo desses ambientes.}} \newif\ifufv@lt@marcasquadros \ufv@lt@marcasquadrostrue \newif\ifufv@lt@marcastabelas \ufv@lt@marcastabelastrue \newcommand{\ufvmarcascontinuacao}[2][]{% \ifcsname ufv@lt@marcas@#2\endcsname\else \PackageError{abntex2-ufv}{Valor desconhecido para \string\ufvmarcascontinuacao: #2}% {Use sim ou nao.}\fi \ifcsname ufv@lt@marcas@#2\endcsname \ifstrempty{#1}{\csname ufv@lt@marcas@#2\endcsname{quadros}% \csname ufv@lt@marcas@#2\endcsname{tabelas}}{% \ifcsname ifufv@lt@marcas#1\endcsname\csname ufv@lt@marcas@#2\endcsname{#1}\else \PackageError{abntex2-ufv}{Tipo desconhecido para \string\ufvmarcascontinuacao: #1}% {Use [quadros] ou [tabelas], ou omita o argumento opcional.}\fi}% \fi} \newcommand{\ufv@lt@marcas@sim}[1]{\csname ufv@lt@marcas#1true\endcsname} \newcommand{\ufv@lt@marcas@nao}[1]{\csname ufv@lt@marcas#1false\endcsname} % Pacotes: conferidos no início do documento; sem eles o ambiente dá erro explicando o que % acrescentar (a classe não os carrega). \newif\ifufv@lt@xltabular \newif\ifufv@lt@colortbl \AtBeginDocument{% \@ifpackageloaded{xltabular}{\ufv@lt@xltabulartrue}{}% \@ifpackageloaded{colortbl}{\ufv@lt@colortbltrue}{}} % (\rowcolor fica no início da linha, onde só cabe \noalign, como no próprio colortbl) % #1 comando, #2 o que vem depois de descartar os argumentos dele ([modelo]{cor}) \newcommand{\ufv@lt@semcolortbl}[2]{\PackageError{abntex2-ufv}{\string#1 requer o pacote colortbl}{Acrescente \string\usepackage{colortbl} ao preambulo do documento.}% \@ifnextchar[{\ufv@lt@semcolortbl@{#2}}{\ufv@lt@semcolortbl@{#2}[]}} \def\ufv@lt@semcolortbl@#1[#2]#3{#1} % Cada ambiente grava no .aux a página em que começa e a em que termina (\@newl@bel: o % LaTeX avisa "Label(s) may have changed" se mudarem). Se forem iguais, a tabela coube % numa página e não leva "conclusão". \newcounter{ufv@lt} \newif\ifufv@lt@quebra \newcommand{\ufv@lt@registra}[1]{% \protected@write\@auxout{}{\string\@newl@bel{ufvlt}{\the\c@ufv@lt @#1}{\thepage}}} % Partes compostas fora das células, com \noalign, numa caixa de largura nula que contém % uma minipage da largura da tabela (assim não alteram a largura medida pelo tabularx). % Na passada de teste do tabularx (\caption ainda não é o do longtable) não fazem nada. \newcommand{\ufv@lt@sefinal}[1]{\ifx\caption\LT@caption#1\fi} \newcommand{\ufv@lt@caixa}[1]{% \hbox to\z@{\begin{minipage}[t]{\linewidth}\ufv@lt@fonte#1\end{minipage}\hss}} \newcommand{\ufv@lt@marca}[1]{% \ufv@lt@caixa{\raggedleft\ABNTEXfontereduzida\strut#1\par}} % título: o mesmo código do ilustracao (\caption do memoir, sem contar com o do longtable) \newcommand{\ufv@lt@cabini}{\noalign{\ufv@lt@sefinal{% \ufv@lt@registra{ini}% \ufv@lt@caixa{\let\caption\ufv@lt@legenda\def\@captype{\ufv@lt@tipo}% \begingroup\ufv@ilestilo \setlength{\abovecaptionskip}{0pt}\setlength{\belowcaptionskip}{0.5\onelineskip}% \ufv@iltitulo\par\endgroup \kern\z@}% (sem \label, o \unskip do fim da minipage tiraria o \belowcaptionskip) \nointerlineskip\vskip\ufv@lt@lineskip}}} \newcommand{\ufv@lt@cabcont}{\noalign{\ufv@lt@sefinal{% \ifufv@lt@marcas\ufv@lt@marca{\continuacaoname}\nointerlineskip\vskip\ufv@lt@lineskip\fi}}} \newcommand{\ufv@lt@pecont}{\noalign{\ufv@lt@sefinal{% \ifufv@lt@marcas\ufv@lt@marca{\continuaname}\fi}}} \newcommand{\ufv@lt@peultimo}{\noalign{\ufv@lt@sefinal{% \ufv@lt@registra{fim}% \ifufv@lt@marcas\ifufv@lt@quebra\ufv@lt@marca{\conclusaoname}\fi\fi \nointerlineskip\vskip 0.3\onelineskip \ufv@lt@caixa{\ufv@ilrodape}}}} % #1 tipo (quadro/table), #2 estilo do título, #3 fonte do conteúdo, #4 marcas (quadros ou % tabelas, ver \ufvmarcascontinuacao), #5 título, #6 rodapé, #7 colunas, #8 conteúdo \newcommand{\ufv@longo}[8]{% \ifufv@lt@xltabular\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi{% \stepcounter{ufv@lt}% \expandafter\ifx\csname ufvlt@\the\c@ufv@lt @ini\expandafter\endcsname \csname ufvlt@\the\c@ufv@lt @fim\endcsname\ufv@lt@quebrafalse\else\ufv@lt@quebratrue\fi \def\ufv@lt@tipo{#1}\def\ufv@ilestilo{#2}% \expandafter\let\expandafter\ifufv@lt@marcas\csname ifufv@lt@marcas#4\endcsname \def\ufv@iltitulo{#5}\def\ufv@ilrodape{#6}% \let\ufv@lt@legenda\caption \ifufv@lt@colortbl\else \def\rowcolor{\noalign\bgroup\ufv@lt@semcolortbl\rowcolor\egroup}% \def\cellcolor{\ufv@lt@semcolortbl\cellcolor{}}% \fi % entre o título e o conteúdo, o \lineskip do texto, como no ilustracao (dentro do % longtable ele vale 0) \edef\ufv@lt@lineskip{\the\lineskip}% \par\def\baselinestretch{1}\selectfont % fonte de título, marcas e rodapé: a do texto (o conteúdo pode ser reduzido) \edef\ufv@lt@fonte{\noexpand\fontsize{\f@size}{\f@baselineskip}\noexpand\selectfont}% #3% % o contador é avançado pelo \caption, não pelo longtable; com \LTcaptype vazio o % longtable não avança o próprio contador (larguras no .aux e âncoras repetidas) \def\LTcaptype{}\stepcounter{LT@tables}% \setlength{\LTleft}{\z@}\setlength{\LTright}{\z@}% \setlength{\LTpre}{\intextsep}\setlength{\LTpost}{\intextsep}% \ufv@lt@separa{#7}#8\cabecalhofim\ufv@lt@fim}{% \PackageError{abntex2-ufv}{O ambiente \@currenvir\space requer o pacote xltabular}{% Acrescente \string\usepackage{xltabular} ao preambulo do documento (ele carrega longtable e tabularx).}}} % separa cabeçalho e corpo em \cabecalhofim (o último \cabecalhofim é o acrescentado acima) \long\def\ufv@lt@separa#1#2\cabecalhofim#3\ufv@lt@fim{% \ifblank{#3}{% \PackageWarning{abntex2-ufv}{\@currenvir\space sem \string\cabecalhofim: a tabela nao tem cabecalho repetido nas paginas seguintes}% \ufv@lt@monta{#1}{}{#2}}{% \ufv@lt@tiraultimo{#1}{#2}#3\ufv@lt@fim}} \long\def\ufv@lt@tiraultimo#1#2#3\cabecalhofim\ufv@lt@fim{\ufv@lt@monta{#1}{#2}{#3}} \long\def\ufv@lt@monta#1#2#3{% \begin{xltabular}{\linewidth}{#1}% \ufv@lt@cabini #2\endfirsthead \ufv@lt@cabcont #2\endhead \ufv@lt@pecont \endfoot \ufv@lt@peultimo \endlastfoot #3% \end{xltabular}} \NewDocumentEnvironment{quadrolongo}{m m m +b}{% \ufv@longo{quadro}{\ufv@ilestilocentro}{}{quadros}{#1}{#2}{#3}{#4}}{} \NewDocumentEnvironment{tabelalonga}{m m m +b}{% \ufv@longo{table}{\ufv@ilestiloesquerda}{\IBGEtabfontsize}{tabelas}% {#1}{#2}{#3}{#4}}{} % --- % O manual pede que o trabalho seja dividido em seções, não em capítulos: % \autoref{} de um \chapter imprime "Seção N". % --- \newcommand{\ufv@autorefsecao}{% \def\chapterautorefname{Se\c{c}\~ao}% \def\sectionautorefname{Se\c{c}\~ao}% \def\subsectionautorefname{Se\c{c}\~ao}% \def\subsubsectionautorefname{Se\c{c}\~ao}} \AtBeginDocument{\ufv@autorefsecao} \@ifundefined{extrasbrazil}{}{\addto\extrasbrazil{\ufv@autorefsecao}} \@ifundefined{extrasbrazilian}{}{\addto\extrasbrazilian{\ufv@autorefsecao}} % --- % Padrões do documento (o usuário pode sobrescrevê-los no preâmbulo) % --- % Espaçamento após ponto como no texto em português (sem espaço extra entre frases) \AtBeginDocument{\frenchspacing} % Aparência do PDF: links pretos e citações em azul (para impressão, troque por black com % \hypersetup{...}). O hyperref já foi carregado pelo abntex2. \hypersetup{colorlinks=true, linkcolor=black, citecolor=blue, filecolor=magenta, urlcolor=blue, bookmarksdepth=4} % O abntex2 escreve o nome de "Apêndices" e "Anexos" com \uppercase; nos marcadores do PDF % (hyperref) esse comando não é permitido e gerava um aviso. O título impresso não muda. \pdfstringdefDisableCommands{\let\uppercase\@firstofone} % Metadados do PDF a partir de \titulo, \autor e \preambulo..., a menos que o usuário os % tenha definido com \hypersetup{pdftitle=..., pdfauthor=..., pdfsubject=...} % (\@title e \@author ainda valem as mensagens de erro do LaTeX enquanto \titulo e \autor % não forem usados; guardamos esses valores para não usá-los como metadados.) \let\ufv@titulopadrao\@title \let\ufv@autorpadrao\@author \newcommand{\ufv@metadadospdf}{% \ifx\@pdftitle\@empty \ifx\@title\ufv@titulopadrao\else\hypersetup{pdftitle={\@title}}\fi \fi \ifx\@pdfauthor\@empty \ifx\@author\ufv@autorpadrao\else\hypersetup{pdfauthor={\@author}}\fi \fi \ifx\@pdfsubject\@empty \ifdefined\imprimirpreambulo\hypersetup{pdfsubject={\imprimirpreambulo}}\fi \fi} % --- % Correção do listings: \end{lstlisting} indentado não gera linha em branco no fim da % listagem. Mexe em macros internas do listings; só é aplicada se elas existirem. % --- \newcommand{\ufv@avisolistings}{\PackageWarning{abntex2-ufv}{O listings mudou; a correcao da linha em branco no fim das listagens foi desativada}} \newcommand{\ufv@patchlistings}{% % (1) sem keepspaces: descarta o espaço pendente ao fechar o ambiente \let\ufv@lstDeInit\lst@DeInit \def\lst@DeInit{\global\lst@token{}\global\lst@length\z@\ufv@lstDeInit}% % (2) com keepspaces=true: os espaços iniciais de cada linha só são % impressos quando surge o primeiro caractere visível da linha \newcount\ufv@lstsp \newif\ifufv@lstcont \lst@AddToHook{InitVarsBOL}{\global\ufv@lstsp\z@\global\ufv@lstcontfalse}% \let\ufv@lstPS\lst@ProcessSpace \def\lst@ProcessSpace{\lst@ifkeepspaces \ifufv@lstcont\expandafter\ufv@lstPS\else\expandafter\ufv@lstdefer\fi \else\expandafter\ufv@lstPS\fi}% \def\ufv@lstdefer{\global\advance\ufv@lstsp\@ne}% \def\ufv@lstflush{\ifufv@lstcont\else\global\ufv@lstconttrue \ifnum\ufv@lstsp>\z@ \@tempcnta\ufv@lstsp \global\ufv@lstsp\z@ \lst@PrintToken \lst@whitespacetrue \@whilenum\@tempcnta>\z@\do{\lst@AppendOther\lst@outputspace \advance\@tempcnta\m@ne}% \lst@PrintToken \fi\fi}% \let\ufv@lstWF\lst@whitespacefalse \def\lst@whitespacefalse{\ufv@lstflush\ufv@lstWF}} % --- % Ajustes aplicados no fim do preâmbulo, quando os pacotes já foram carregados: % metadados do PDF, correção do listings e ajustes do biblatex (manual UFV, cap. 5 e 6). % O biblatex é carregado pelo documento (veja o template), não pela classe. % --- \AtEndPreamble{% \ufv@metadadospdf \@ifpackageloaded{listings}{% % (\ifdefined direto: dentro de test{} do \ifboolexpr o teste sempre dava falso) \ifdefined\lst@DeInit\ifdefined\lst@ProcessSpace\ifdefined\lst@whitespacefalse \ufv@patchlistings \else\ufv@avisolistings\fi\else\ufv@avisolistings\fi\else\ufv@avisolistings\fi }{}% \@ifpackageloaded{biblatex}{% % URLs no estilo do texto. A linha em branco entre as referências já vem do % biblatex-abnt (\bibitemsep = \baselineskip); não altere o \bibparsep (padrão 0pt): % em uma lista, o espaço entre itens é \itemsep + \parsep, e valores maiores que 0 % deixariam o espaço entre as referências maior que uma linha em branco. \ifdefined\urlstyle\urlstyle{same}\fi % referências em espaço simples \AtBeginBibliography{\SingleSpacing}% % intervalos: páginas com hífen (p. 855-869) e meses com barra (nov./dez. 2003) \DefineBibliographyExtras{brazilian}{\protected\def\bibrangedash{-}}% \renewcommand*{\bibdaterangesep}{/}% % citação de obra sem autoria: "Pequena [...]" (primeira palavra) ou, se o % campo shorttitle estiver preenchido, "A flor [...]" (título curto completo) \DeclareFieldFormat{firstword}{% \normalfont \iffieldundef{shorttitle}{\FirstWord{#1}}{#1}\space[...]\isdot}% % título "REFERÊNCIAS" centralizado, sem indicativo numérico, como nos demais elementos \defbibheading{bibliography}[Refer\^encias]{% \pretextualchapter{\texorpdfstring{\MakeTextUppercase{#1}}{#1}}% \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeTextUppercase{#1}}{#1}}}% }{}% } % --- % FIM DAS CUSTOMIZACOES PARA A UNIVERSIDADE FEDERAL DE VIÇOSA % ---