%$Id: abnt.cls,v 1.27.2.1 2004/11/02 15:04:29 gweber Exp $
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% ABNT.CLS
%
%
% Licence: LPPL (LaTeX Project Public License)
% You can change this file in the terms of LPPL
% (http://www.latex-project.org/lppl.html)
%
% Licenca: LPPL (LaTeX Project Public License)
% Esta licenca diz basicamente que se voce editar o codigo desta
% classe, mesmo localmente (no seu micro), voce DEVE RENOMEAR o arquivo
% da classe!! Como sempre, nao eh dada nenhuma garantia.
% Para o texto completo da licenca, favor seguir o endereco
% http://www.latex-project.org/lppl.html
%
% Classe para confeccao de monografias, dissertacoes ou teses
% de acordo com as normas da Associacao Brasileira de Normas
% Tecnicas (ABNT). Esta classe, junto com o estilo bibTeX, foram
% desenvolvidos no grupo de trabalho abnTeX (ABsurd Norms for TeX :-)
% (http://abntex.codigolivre.org.br)
%
% Class to make theses or monographies following norms defined by
% Brazilian Association for Tecnical Norms. This class is developed
% by abnTeX group (http://abntex.codigolivre.org.br), together with two
% bibTeX styles.
%
% Author (class): Miguel Vinicius Santini Frasson
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Implementation of this class:
%
% preamble
% class identification
% including required packages
% option declarations
% pnumabnt (default), pnumplain, pnumromarab
% sumariocompleto (default), sumarioincompleto
% abnttocpagnum (default), tocpagnumnormal
% abntfigtabnum (default), normalfigtabnum
% noheader, header, plainheader (default), ruledheader,
% capchap, capsec
% anapmaiusc (default), anapnormal
% apapindentindic (default), anapindentcustom
% anapname (default), anapnoname
% espacosimples, espacoumemeio (default), espacoduplo
% sempaccomuns (default), paccomuns
% -> no longer supported (kept for compatibility)
% autobm (default), noautobm
% times, notimes (default)
% indentfirst (default), noindentfirst
% mechanism for saving other options names
% perform tests to set fontsize, openright and paper properly
% (in order to get 12pt, a4 and openright as default, but user can change)
% option procession
% work around for prevent report to add figure and table counter in the
% reset list of chapter counter (option disables it)
% class 'report' loaded
% undo work figure and table around if necessary.
%
% implementation
% setting default spacings
% (NOT) loading commom packages
% inputenc[latin1], amsmath, amssymb,
% amsbsy, dsfont, eucal[mathscr]
% loading 'setspace' package, but providing 'workaround' if user don't
% use it.
% setting margins with simple commands
% creating page styles 'plainheader', 'header' and 'ruledheader'
% Page numbering section
% setting switches and defining \ABNTBeginOfTextualPart according to
% the page numbering scheme in option
% line spacing commands and environments
% Chapter and section: titles, page numbering, etc
% This is a very delicated part. Let's give a flavour of what
% happened. See comments in implementation for details.
% redefining \chapter
% - tests for determine begin of textual part and make changes at this
% event.
% - \pretextualchapter: a stared chapter in the pre-textual part
% - ProximoForaDoSumario -> switches off \ABNTaddcontentsline.
% - Marks: care is they are inserted by default or not.
% - redefinig \@schapter: now \chapter* is almost equal to \chapter,
% appart from the title display. It also includes an entry in TOC.
% - \@part and \@spart redefined: font purposes.
% - defined \ABNTstartsection: stared section with centralized titles
% and inclusion in TOC.
% - new \@dottedtoline for compleance with NBR 6027-1989
% - \@makechapterhead and \@makeschapterheadredefined to fit
% norms. Paying attention to capchap and fonts.
% - redefined all \section like commands (apply last redefinitions
% and font purposes)
% - \anexo and \apendice -> apply old \appendix changes and
% replaces \@chapter by \@anapchapter.
% redefining important commands (those that set page marks, getting rid
% of explicit \MakeUppercase)
% \tableofcontents
% \listoffigures
% \listoftables
% thebibliography
% theindex (now balanced columns) or use \IndiceNaoBalanceado
% custumizable caption separator -> temporarely commented (not required)
% environment citado = citacao, for long quotations
% pre-textual elements
% Capa (cover) and Folha de rosto (face page): defining commands
% \instituicao
% \autor
% \orientador
% \coorientador
% \titulo
% \comentario
% \local
% \data
% and
% \capa, displaying what is required according to norms.
% \folhaderosto, that prints the face page, according to norms.
% Resumo and Abstract.
% Environment folhadeaprovacao and \assinatura(*){}
% prototype for list of symbols -> no future, I think.
% Loading fonts if required.
% Auto bold math
% Indentation of first paragraph
% commented announcements.
%
% That is it ;-D
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% List of Changes
% ---------------
% $Log: abnt.cls,v $
% Revision 1.27.2.1 2004/11/02 15:04:29 gweber
% resolvido problema com bookmarks e hyperrefs.
%
% Revision 1.27 2004/04/01 14:07:46 mvsfrasson
%
%
% Retirado um bug no \@chapter que causa o cabecalho ter o numero do capitulo errado
%
% Revision 1.26 2003/10/13 09:40:01 gweber
% Passa a usar cvs-id.def para gerar informações sobre data e versão.
%
% Revision 1.25 2003/09/16 16:49:29 gweber
% Troca de \bibname por \refname o que equivale a trocar "Referêncas Bibliográficas" por
% "Referências". Isto atende ao que entendemos esteja implícito na NBR14724-2002.
%
% Revision 1.24 2003/08/22 14:45:18 gweber
% Resolvido bug 178 que fazia o texto de \part aparecer duas vezes.
%
% Revision 1.23 2003/06/30 14:10:47 gweber
% Links criados com hyperref para apêndices e anexos não misturam mais com os links para capítulos comuns,
% resolvendo o bug #140.
%
% Revision 1.22 2003/05/30 10:39:19 gweber
% Alterações introduzidas em 0.7-beta.
%
% Revision 1.21.2.1 2003/05/30 10:16:07 gweber
% Correction of bug 137 which causes the class to fail when loading
% the package hyperref and using \tableofcontents.
% This also resolves partially bugs 82 and 51.
%
%
% Added in version 1.1 patch 1
%
% - fixed bug of undefined \ABNT<section name>mark, which shows twice the
% section name (only for subsection, subsubsection, and paragraph)
%
% Added in version 1.1
%
% - Fixed bug of missing paragraphy after \chapter
% - \ProximoForaDoSumario has optional parameter to et page marks
% - Fixed bug of abscense of package setspace.
% - Added options `abntfigtabnum' and `normalfigtabnum' to deal with
% figure and table counters.
% - Added abnt style for toc. Options `abnttoc' and
% `normaltoc' were added.
% - Fixed bug of defining pagestyles only if non-noheader.
%
% Added in version 1 (finally)
%
% - Fixed mispelling on command \espaco.
% - Fixed "capsec" (not working before).
% - Added full support for Annex and Appendix, with several class options
% and commands for customization.
% - Not using package "textcase" anymore, since there is a undesirable
% extra space included with \MakeUppercase.
% - Fixed default options. Now "openright" is really default.
% - Now using feature of "setspace" to avoid extra spacing on display
% math. No bugs if the version of setspace is not up to date.
% - Added \ProximoForaDoSumario, to avoid one to not include all \chapter*
% if one wants to set diferently the title and contents of such chapters.
% - Fixed bug on \part toc entries (buggy extra space)
% - Now font size for \capter(*) is given by \ABNTchaptersize, preventing a
% boring redefinition of \ABNTtocchapterfont.
% - Option paccomuns no longer default.
%
% Added in version 1 beta 3
%
% - Fixed bug in page marks for \section*{}.
% - "setspace" no longer require especific (new) version.
% - Added "no displayskip stretch" support offered by 'setspace' for better
% aesthetic.
% - Added compatibility with "hyperref" package (no more incompatible
% optional parameter on \chapter* -- hyperref redefines some commands)
% - Useless commands removed: \cabecalhoesq and \cabecalhodir.
%
% Added in version 1 beta 2
%
% - Correct figure and table counter.
% - Some support to "folha de apresentacao", including environment
% \begin{folhadeapresentacao} e \assinatura{} (signature).
% - Fixed bug in pnumplain and headers.
% - Fixed bug in page marks for \@schapter.
%
% Added in version 1 beta
%
% Total reformulation of the class! The main added feature are:
% - Good machanism for "Folha de Rosto" (face page) added.
% - Page numbering squemes according to the norms.
% - Right page headings.
% - Correct section titles.
% - Several options added.
% - Features removed, like margin care
% ...too many changes to list. Just like a "new" class.
%
% Added in version 0.4.3
%
% - Stupid but severe bug on \listoffigures and \listoftables
% left from previous version finally removed
% - Bug fixes in theindex and thebibliography
% - Redefinition of \cleardoublepage (empty page => page style empty)
% - This `list of changes' added
%
% Added in version 0.4.2
%
% - Added \StarChaptersInTOC, \StarChaptersNotInTOC to differenciate
% from "standard" (old) stared chapters like \tableofcontents,
% \listoffigures, \listoftables, thebibliography and theindex.
% - Huge bugs in commands or environments \tableofcontents, \listoffigures,
% \listoftables, thebibliography and theindex fixed.
% - Command \SpAcEs changed to \spABNT (more reliable than before)
%
% Added in version 0.4.1
%
% - Extract forgotten debug command
% - Fix conflict (\Sp command) in final messagem, creating \SpAcEs (and
% hoping nobody made it before)
%
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% PREAMBLE %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%% IDENTIFICATION %%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}%
\input{cvs-id.def}
\CVSExtract$Id: abnt.cls,v 1.27.2.1 2004/11/02 15:04:29 gweber Exp $
\CVSClass{abnt}{\space Classe abnt (NBR6024, NBR6027, NBR6028, NBR14724)} %substitui \ProvidesPackage (replaces \ProvidesPackage)
% \NeedsTeXFormat{LaTeX2e}%
% \ProvidesClass{abnt}%
% [2002/05/20 version 1 da Classe LaTeX2e ABNT]
%%%%%% Required packages for the implementation of this class %%%%%%
% ifthen - conditions in LaTeX
\RequirePackage{ifthen}
% calc - standard package for length and number easy calculations
\RequirePackage{calc}
% multicol - better multicolunms
\RequirePackage{multicol}
%%%%%%%%%%%%% OPTION DECLARATION %%%%%%%%%%%%
%% Page numbering squeme
\providecommand{\ABNTpnum}{}
\DeclareOption{pnumabnt} {\renewcommand{\ABNTpnum}{ABNT}}
\DeclareOption{pnumplain} {\renewcommand{\ABNTpnum}{plain}}
\DeclareOption{pnumromarab} {\renewcommand{\ABNTpnum}{RomSumArab}}
\ExecuteOptions{pnumabnt}
%% Automatically include in TOC bibliography, index and stared chapters
\newboolean{ABNTincludeintoc}
\DeclareOption{sumariocompleto} {\setboolean{ABNTincludeintoc}{true}}
\DeclareOption{sumarioincompleto} {\setboolean{ABNTincludeintoc}{false}}
\ExecuteOptions{sumariocompleto}
%% Style of page numbers in TOC
\newboolean{ABNTpagenumstyle}
\DeclareOption{abnttoc} {\setboolean{ABNTpagenumstyle}{true}}
\DeclareOption{normaltoc} {\setboolean{ABNTpagenumstyle}{false}}
\ExecuteOptions{abnttoc}
%% Figures and tables independent of sections?
\newboolean{ABNTfigtabnumbers}
\DeclareOption{abntfigtabnum}{\setboolean{ABNTfigtabnumbers}{true}}
\DeclareOption{normalfigtabnum}{\setboolean{ABNTfigtabnumbers}{false}}
\ExecuteOptions{abntfigtabnum}
%% Option: page headers
\newboolean{ABNTheader}
\providecommand{\ABNTheadertype}{\relax}
\DeclareOption{noheader} {\setboolean{ABNTheader}{false}}
\DeclareOption{header} {\setboolean{ABNTheader}{true}
\renewcommand{\ABNTheadertype}{normal}}
\DeclareOption{plainheader} {\setboolean{ABNTheader}{true}
\renewcommand{\ABNTheadertype}{plain}}
\DeclareOption{ruledheader} {\setboolean{ABNTheader}{true}
\renewcommand{\ABNTheadertype}{ruled}}
\ExecuteOptions{plainheader}
%% Option `capchap', `capsec':
%% titles of chapters or sections in capital letters
\newboolean{ABNTcapchap}
\setboolean{ABNTcapchap}{false}
\newboolean{ABNTcapsec}
\setboolean{ABNTcapsec}{false}
\DeclareOption{capchap}{\setboolean{ABNTcapchap}{true}
\setboolean{ABNTCapAnnexAppendix}{true}}
\DeclareOption{capsec}{\setboolean{ABNTcapsec}{true}}
%% Option `anapmaiusc' and `anapnormal'
%% should \annexname and \appendixname be on capital letters?
\newboolean{ABNTCapAnnexAppendix}
\setboolean{ABNTCapAnnexAppendix}{true} % manual execution of option for
% cooperation between `capchap'
% and `anexapendnormal'
\DeclareOption{anapmaiusc}{\setboolean{ABNTCapAnnexAppendix}{true}}
\DeclareOption{anapnormal}{\setboolean{ABNTCapAnnexAppendix}{false}}
%% Option `anapindentindic' in order to \anexo or \apendice make ABNT
%% strict indentation on its titles.
\newboolean{ABNTAnApIndicativoIndent}
\DeclareOption{anapindicindent}{\setboolean{ABNTAnApIndicativoIndent}{true}}
\DeclareOption{anapcustomindent}{\setboolean{ABNTAnApIndicativoIndent}{false}}
\ExecuteOptions{anapindicindent}
%% Option `anapindentindic' in order to \anexo or \apendice make ABNT
%% strict indentation on its titles.
\newboolean{ABNTAnApName}
\DeclareOption{anapname}{\setboolean{ABNTAnApName}{true}}
\DeclareOption{anapnoname}{\setboolean{ABNTAnApName}{false}}
\ExecuteOptions{anapname}
%% Line Spacing options: change current setting.
\newcommand*{\ABNTespacodefault}{} %
\DeclareOption{espacoumemeio} {\renewcommand*{\ABNTespacodefault}%
{\taxaespacoumemeio}} % default
\DeclareOption{espacosimples} {\renewcommand*{\ABNTespacodefault}%
{\taxaespacosimples}}
\DeclareOption{espacoduplo} {\renewcommand*{\ABNTespacodefault}%
{\taxaespacoduplo}}
\ExecuteOptions{espacoumemeio}
%% Margin care --> Removed since version 1 beta
%% Options `spacednotes': removed since version 0.3
% Assuming notes single spaced always (no alternative if using setspace ;-D
%% Option: loading common packages NO LONGER SUPPORTED!!!
\newboolean{ABNTcommonpack}
\DeclareOption{paccomuns} {\setboolean{ABNTcommonpack}{true}}
\DeclareOption{sempaccomuns} {\setboolean{ABNTcommonpack}{false}}
\ExecuteOptions{sempaccomuns}
%% Auto bold math: bold math version ir text font is in bold face
\newboolean{ABNTautobm}
\DeclareOption{autobm} {\setboolean{ABNTautobm}{true}}
\DeclareOption{noautobm} {\setboolean{ABNTautobm}{false}}
\ExecuteOptions{autobm}
%% font option: times as default or not
\newboolean{ABNTtimesfont}
\DeclareOption{times} {\setboolean{ABNTtimesfont}{true}}
\DeclareOption{notimes} {\setboolean{ABNTtimesfont}{false}}
\ExecuteOptions{notimes}
%% Option to indent the first paragraph of each section or chapter
\newboolean{ABNTindentfirst}
\DeclareOption{indentfirst} {\setboolean{ABNTindentfirst}{true}}
\DeclareOption{noindentfirst} {\setboolean{ABNTindentfirst}{false}}
\ExecuteOptions{indentfirst}
\def\ABNTcurrentoptions{}
\newcommand{\AddCurrentOptionToList}{%
\ifx\ABNTcurrentoptions\@empty%
\edef\ABNTcurrentoptions{\CurrentOption}%
\else%
\edef\ABNTcurrentoptions{\ABNTcurrentoptions,\CurrentOption}%
\fi%
}
%% All options not defined are passed to `report'
\DeclareOption*{%
\AddCurrentOptionToList
% if some font or paper option is passed, a flag is set.
\ifthenelse{\equal{\CurrentOption}{10pt}\or\equal{\CurrentOption}{11pt}}%
{\setboolean{ABNTfontsize}{true}}{}%
\ifthenelse{\equal{\CurrentOption}{a5paper}\or%
\equal{\CurrentOption}{b5paper}\or%
\equal{\CurrentOption}{letterpaper}}%
{\setboolean{ABNTpaper}{true}}{}%
\ifthenelse{\equal{\CurrentOption}{openany}}%
{\setboolean{ABNTopen}{true}}{}%
\PassOptionsToClass{\CurrentOption}{report}}
% testing if user use other options for font size or paper
% than 12pt, a4paper and openright
\newboolean{ABNTfontsize}
\setboolean{ABNTfontsize}{false}
\newboolean{ABNTpaper}
\setboolean{ABNTpaper}{false}
\newboolean{ABNTopen}
\setboolean{ABNTopen}{false}
% Process options (without star -> in the order of definition!).
\ProcessOptions
% After process options, flags are properly set.
% Passing options to class, that will be loaded in \LoadClass
\ifthenelse{\boolean{ABNTfontsize}}%
{}{\PassOptionsToClass{12pt}{report}}
\ifthenelse{\boolean{ABNTpaper}}%
{}{\PassOptionsToClass{a4paper}{report}}
\ifthenelse{\boolean{ABNTopen}}%
{}{\PassOptionsToClass{openright}{report}}
%%%%%%%%% Lying to report :-) -> working
%%
%% Report says: \newcounter{figure}[chapter], \newcounter{table}[chapter]
%% But this is not ABNT (figure counter should not reset to 1 if chapter
%% increments). There is no straight forward way to "\renewcounter"
%% then. So I have to make an work around.
%%
%% Idea: redefine \newcounter s.t. id newcounter is figure or table, then do
%% what I want (do not include [chapter] in the command). Otherwise, do
%% normal \newcounter.
%%
%% Advantage of this: some package may suppose that the counters of figure
%% and table are actually figure and table, and not ABNTfigure, ABNTtable,
%% as in previous versions
\ifthenelse{\boolean{ABNTfigtabnumbers}}
{
% saving old \newcounter
\let\ABNToldnewcounter\newcounter\relax
\def\ABNTeatbrackets[#1]{\relax}
\renewcommand{\newcounter}[1]%
{\ifthenelse{\equal{#1}{figure}\or\equal{#1}{table}}%
{\ABNToldnewcounter{#1}\@ifnextchar[{\ABNTeatbrackets}{}}%
{\ABNToldnewcounter{#1}}%
}
}
{}
%%%%%%%%%%%% LOADIND REPORT CLASS %%%%%%%%%%%%
% Load base class using current setting for basic options.
\LoadClass{report}
\ifthenelse{\boolean{ABNTfigtabnumbers}}
{
%% undoing redefinition of \newcounter and fixing \the(counters)
\let\newcounter\ABNToldnewcounter\relax
\renewcommand{\thefigure}{\arabic{figure}}
\renewcommand{\thetable}{\arabic{table}}
}
{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% %%
%% IMPLEMENTATION %%
%% %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Stretch factor for default line spacing schemes
\newcommand*{\taxaespacosimples}{1.}
\newcommand*{\taxaespacoumemeio}{1.35}
\newcommand*{\taxaespacoduplo}{1.7}
%%%%%%%% Load interesting packages : OBSOLET!!! %%%%%%%%%%%%%%%%
\ifthenelse{\boolean{ABNTcommonpack}}%
{%
\typeout{ABNT: Opcao 'pacotescomuns' ativa!}
% fontenc[T1] --> removed for possible pdf compatibility
% inputenc[latin1]: more common input encoding
\typeout{ABNT -> incluindo inputenc[latin1]}%
\RequirePackage[latin1]{inputenc}%
% amsmath: AMS math environments for LaTeX
\typeout{ABNT -> incluindo amsmath}%
\RequirePackage{amsmath}%
% amssymb: AMS symbols
\typeout{ABNT -> incluindo amssymb}%
\RequirePackage{amssymb}%
% amsbsy: bold version of symbols in amssymb
\typeout{ABNT -> incluindo amsbsy}%
\RequirePackage{amsbsy}%
% dsfont: double stroke fonts (as IR, IN, etc)
\IfFileExists{dsfont.sty}{%
\typeout{ABNT -> incluindo dsfont}%
\RequirePackage{dsfont}}{}%
% eucal[mathscr]: new calligraphic letters
\typeout{ABNT -> incluindo eucal[mathscr]}%
\RequirePackage[mathscr]{eucal}%
% makeidx -> removed. Useless if the user don't care about.
}%
{}%
%%%%%% Package for proper line spacing commands and environments
\IfFileExists{setspace.sty}%
{\RequirePackage{setspace}}% then
% else
{%
% first a warning at the end of the document and than
% fake the \setstretch command, not provided by setspace.
\AtEndDocument{\ClassWarningNoLine{abnt}%
% warning text
% Package 'setspace' needed and was not found.
% Please install it or check for errors in loading it.
% It can be found at CTAN (www.ctan.org), for example.
% For more information, refer to the class manual.
{-----------------------------------------------\MessageBreak%
O pacote 'setspace' eh necessario e nao foi\MessageBreak%
encontrado. Favor instala-lo propriamente ou\MessageBreak%
checar por erros em sua leitura. Ele pode ser\MessageBreak%
encontrado na CTAN (www.ctan.org), por exemplo.\MessageBreak%
Para mais informacoes, leia o manual da classe.\MessageBreak%
-----------------------------------------------}%
}%
\ifthenelse{\isundefined{\@currsize}}
{\providecommand{\setstretch}[1]{\def\baselinestretch{#1}\normalsize}}
{\providecommand{\setstretch}[1]{\def\baselinestretch{#1}\@currsize}}
}
% This command is defined by 'setspace' package, to ajust extra spacing
% before and after display math. It depends on if your setspace.sty is of
% 21 march 1998 or ouder.
\providecommand{\setdisplayskipstretch}[1]{\relax}
% equivalent to the option 'nodisplayskipstretch' of setspace.
\setdisplayskipstretch{1.0}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Setting margins
%% (old Margin care mechanism removed since version 1 beta.)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifthenelse{\boolean{ABNTheader}}%
{%
%%%% VERTICAL LENGHTS %%%%
% The distance beetwen the top of the header and the top of the text is
% of 1cm, this is, 1cm=\headheight+\headsep
% ...but, we have to consider the depth of the header, addin 2mm.
\setlength{\headsep}{1.2cm-\headheight}
% The distance beetwen the paper border and the number must be 2cm
% 2cm=\topmargin+\voffset+1in
\setlength{\topmargin}{2cm-1in-\voffset}
% The inferior border must be 2cm
% \paperheight=\topmargin+\voffset+1in+\headheight+\headsep+\textheight+2cm
\setlength{\textheight}%
{\paperheight-\topmargin-\voffset-1in-\headheight-\headsep-2cm}
}%
{% no header is not ABNT!!!
% Let's fake it: 2cm each vertical margin and de same horizontal margin.
\setlength{\topmargin}{2cm-\headheight-\headsep-\voffset-1in}
\setlength{\textheight}%
{\paperheight-2cm-\footskip-2cm}
}%
%%%% HORIZONTAL LENGHTS %%%%
% The left margin is 3cm, and the right margin equals to 2cm.
\setlength{\oddsidemargin}{3cm-\hoffset-1in}
% for compatibility with twoside print, the length of the margins must
% be exchanged.
\setlength{\evensidemargin}{2cm-\hoffset-1in}
% \paperwidth=\textwidth+\oddsidemargin+\hoffset+1in+2cm
\setlength{\textwidth}{\paperwidth-\oddsidemargin-\hoffset-1in-2cm}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Page styles available:
% plainheader, header, ruledheader
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% fontstyle for header elements
\newcommand{\rightmarkformat}{\small\itshape}
\newcommand{\leftmarkformat}{\itshape}
\newcommand{\thepageformat}{\small}
%
\newcommand{\ABNTmarkboth}[2]{%
\ifthenelse{\boolean{ABNTNextOutOfTOC}}
{\markboth{\ABNTnextmark}{\ABNTnextmark}}
{\markboth{#1}{#2}}%
}
\newcommand{\ABNTmarkright}[1]{%
\ifthenelse{\boolean{ABNTNextOutOfTOC}}
{\markright{\ABNTnextmark}}
{\markright{#1}}%
}
%%%%%%% Defining pagestyle "header"
%
\newcommand{\ps@header}{%
\renewcommand{\@oddfoot}{}%
\renewcommand{\@evenfoot}{}%
\renewcommand{\@oddhead}%
{{\rightmarkformat\rightmark}\hfill{\thepageformat\thepage}}%
\renewcommand{\@evenhead}%
{{\thepageformat\thepage}\hfill{\leftmarkformat\leftmark}}%
% Para \chapter* mostrar o cabecalho
\let\@mkboth\ABNTmarkboth%
% Definindo a maneira como o comando o \chapter marca o cabecalho
\renewcommand{\chaptermark}[1]{%
\markboth%
{\ifnum \c@secnumdepth >\m@ne%
\thechapter{} %
\fi%
##1}%
{\ifnum \c@secnumdepth >\m@ne%
\thechapter{} %
\fi%
##1}%
}%
\renewcommand{\sectionmark}[1]{%
\markright{%
\ifnum \c@secnumdepth >\z@%
\thesection\ \ %
\fi%
##1}%
}%
}%
%% Defining pagestyle plainheader
%
\newcommand{\ps@plainheader}{%
\renewcommand{\@oddfoot}{}%
\renewcommand{\@evenfoot}{}%
\renewcommand{\@oddhead}{\hfill{\thepageformat\thepage}}%
\renewcommand{\@evenhead}{{\thepageformat\thepage}\hfill}%
% Para \chapter* mostrar o cabecalho
\let\@mkboth\ABNTmarkboth%
% Definindo a maneira como o comando o \chapter marca o cabecalho
\renewcommand{\chaptermark}[1]{%
\markboth%
{\ifnum \c@secnumdepth >\m@ne%
\thechapter\ \ %
\fi%
##1}%
{\ifnum \c@secnumdepth >\m@ne%
\thechapter\ \ %
\fi%
##1}%
}%
\renewcommand{\sectionmark}[1]{%
\markright{%
\ifnum \c@secnumdepth >\z@%
\thesection\ \ %
\fi%
##1}%
}%
}%
%% Defining pagestyle ruledheader
%
\newcommand{\ps@ruledheader}{%
\renewcommand{\@oddfoot}{}%
\renewcommand{\@evenfoot}{}%
\renewcommand{\@oddhead}%
{\underline{\makebox[\textwidth]{\raisebox{-.5ex}{}%
{\rightmarkformat\rightmark}\hfill{\thepageformat\thepage}}}}%
\renewcommand{\@evenhead}%
{\underline{\makebox[\textwidth]{\raisebox{-.5ex}{}%
{\thepageformat\thepage}\hfill{\leftmarkformat\leftmark}}}}%
% Para \chapter* mostrar o cabecalho
\let\@mkboth\ABNTmarkboth%
% Definindo a maneira como o comando o \chapter marca o cabecalho
\renewcommand{\chaptermark}[1]{%
\markboth%
{\ifnum \c@secnumdepth >\m@ne%
\thechapter\ \ %
\fi%
##1}%
{\ifnum \c@secnumdepth >\m@ne%
\thechapter\ \ %
\fi%
##1}%
}%
\renewcommand{\sectionmark}[1]{%
\markright{%
\ifnum \c@secnumdepth >\z@%
\thesection\ \ %
\fi%
##1}%
}%
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Page numbering
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newboolean{ABNTinpretext}
\setboolean{ABNTinpretext}{true}
\newboolean{ABNTaftertoc}
\setboolean{ABNTaftertoc}{false}
% The command \ABNTBeginOfTextualPart is executed by \tableofcontents at
% its end. It's intented to page style and page number settings.
\providecommand{\ABNTBeginOfTextualPart}{}
\newcommand{\chaptertitlepagestyle}{plain}
\ifthenelse{\equal{\ABNTpnum}{plain}}
{%
\setboolean{ABNTinpretext}{false}
\setboolean{ABNTaftertoc}{true}
\ifthenelse{\boolean{ABNTheader}}
{%
\ifthenelse{\equal{\ABNTheadertype}{plain}}%
{\pagestyle{plainheader}}
{%
\ifthenelse{\equal{\ABNTheadertype}{normal}}%
{\pagestyle{header}}%
{\pagestyle{ruledheader}}%
}%
\renewcommand{\chaptertitlepagestyle}{plainheader}%
}%
{%
\pagestyle{plain}%
\renewcommand{\chaptertitlepagestyle}{plain}
}%
}%
{%
\ifthenelse{\equal{\ABNTpnum}{ABNT}}%
{% ABNT strict
% - pagestyle is empty until \tableofcontents, when it becames with
% numeration (depending on `header' or `plain' header style)
% - page counter starts AT `folha de rosto'.
%
% Makeing titlepage environment increase page counter
\let\ABNToldendtitlepage\endtitlepage\relax
\renewcommand{\endtitlepage}{\ABNToldendtitlepage\addtocounter{page}{1}}
\pagestyle{empty}
\renewcommand{\thepage}{}
\renewcommand{\chaptertitlepagestyle}{empty}
\renewcommand{\ABNTBeginOfTextualPart}%
{%
\renewcommand{\thepage}{\arabic{page}}
\ifthenelse{\boolean{ABNTheader}}
{%
\ifthenelse{\equal{\ABNTheadertype}{plain}}%
{\pagestyle{plainheader}}
{%
\ifthenelse{\equal{\ABNTheadertype}{normal}}%
{\pagestyle{header}}%
{\pagestyle{ruledheader}}%
}%
\renewcommand{\chaptertitlepagestyle}{plainheader}%
}%
{%
\pagestyle{plain}%
\renewcommand{\chaptertitlepagestyle}{plain}
}%
}%
}%
{% RomArab
% - page style with numeration
% - BEFORE \tableofcontents
% \thepage in roman
% page counter starts AFTER `folha de rosto'
% - AFTER \tableofcontents
% \thepage in arabic
% page counter starts again
%
\ifthenelse{\boolean{ABNTheader}}
{%
\ifthenelse{\equal{\ABNTheadertype}{plain}}%
{\pagestyle{plainheader}}
{%
\ifthenelse{\equal{\ABNTheadertype}{normal}}%
{\pagestyle{header}}%
{\pagestyle{ruledheader}}%
}%
\renewcommand{\chaptertitlepagestyle}{plainheader}%
}%
{%
\pagestyle{plain}%
\renewcommand{\chaptertitlepagestyle}{plain}
}%
\renewcommand{\thepage}{\roman{page}}
\renewcommand{\ABNTBeginOfTextualPart}%
{%
\renewcommand{\thepage}{\arabic{page}}
\setcounter{page}{1}
}%
}%
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Line spacing stuff
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Since version 0.3 the `setspace' package is used.
% Space scheme in notes (footnotes and margin notes) removed since
% version 0.3 since setspace do not support it; footnotes are always
% single spaced!
% \espaco{} - ativa o espacamento para um numero dado (taxa de
% esticamento), mas aceita os parametros simples, umemeio, e duplo.
\newcommand{\espaco}[1]%
{\ifthenelse{\equal{#1}{simples}}% se espacamentos simples
{\setstretch{\taxaespacosimples}} % entao
{ %senao (espaco simples)
\ifthenelse{\equal{#1}{umemeio}}% se espaco 1 1/2
{\setstretch{\taxaespacoumemeio}} % entao
{%senao (espaco 1 1/2)
\ifthenelse{\equal{#1}{duplo}}% se espaco duplo
{\setstretch{\taxaespacoduplo}}% entao
{\setstretch{#1}} % senao espaco dado
} %fim se espaco 1 1/2
} %fim se espaco simples
}%fim newcommand
\newenvironment{espacosimples}
{\begin{spacing}{\taxaespacosimples}}{\end{spacing}}
\newenvironment{espacoumemeio}
{\begin{spacing}{\taxaespacoumemeio}}{\end{spacing}}
\newenvironment{espacoduplo}%
{\begin{spacing}{\taxaespacoduplo}}{\end{spacing}}
\newboolean{ABNThypertoc}
\AtBeginDocument{%
% default spacing (set by class options)
\espaco{\ABNTespacodefault}%
\@ifpackageloaded{hyperref}{\setboolean{ABNThypertoc}{true}}{\setboolean{ABNThypertoc}{false}}%
}
% Font track mechanism (like in utthesis.cls)
% - removed from implementation since version 0.3.
% - use instead package `relsize'.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Chapter title page style
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Redefining \chapter and \part. The changes are
% - \chapteritlepagestyle instead of explict plain page style
% - \ABNTchaptermark instead of \chaptermark (must be before
% \addcontentsline !!!)
% - several commands were replaced by abntversions due to nuances of the
% norms :-( it can create several uncompatibilities with packages that
% change explictily these important commands, although I have tried very
% hard to make as less damage on compatibility as possible. As a result
% of this, package hyperref is totally broken with abnt.cls.
%%%%%%%%%%%%%%%%%%%%%% Special definitions %%%%%%%%%%%%%%%%%%%%
% What is going on here?
%
% This class supports auto include in toc for both \chapter* and
% \section* (and similars). As we know, the command \chapter admits an
% optional argument, which goes to the toc and the marks, if it's present
% (otherwise the main parameter of \chapter is used in toc and marks also.)
%
% To allow exactly the same mechanism for \chapter and \chapter*, \section
% and \section*, \subsection and \subsection*, etc, I had to define
% similar commands to some important core commands in LaTeX, like \secdef
% (we make a new one to avoid conflicts with other packages) and
% \@startsection (I make a new one too).
%
% Now, \ABNTstartsection, appart from make the stared version of a
% section-like command to include the title in toc (if a boolean is set to
% true), the title is centered for stared form.
%
% Now, \chapter* and \part* are almost equal to \chapter and \part
%
% The origin of this material are the files
% $texmfDIR/tex/latex/base/latex.ltx (codigo fonte do LaTeX)
% $texmfDIR/tex/latex/base/report.cls (classe standard)
% From the definition of \secdef -> stared version now admits optional
% param (after bug with hyperref, it was no longer used.)
\def\ABNTsecdef#1#2{\@ifstar{\@dblarg{#2}}{\@dblarg{#1}}}
% Changed explicit \thispagestyle{empty}
\newcommand{\chaptertype}{}%
\renewcommand\chapter%
{%
\if@openright\cleardoublepage\else\clearpage\fi%
\thispagestyle{\chaptertitlepagestyle}
\ifthenelse{\boolean{ABNTinpretext}}%
{%
\ifthenelse{\boolean{ABNTaftertoc}}%
{% change to textual part
\setboolean{ABNTinpretext}{false}%
\ABNTBeginOfTextualPart%
}%
{}%
}%
{}%
\global\@topnum\z@%
\@afterindentfalse%
% \ABNTsecdef\@chapter\@schapter%
\secdef\@chapter\@schapter%
}%
% To make pre-textual chapters (that fits page numbering squeme...)
% this is equal to \chapter*{}, but ignores in witch part is it. It does
% not change any tags.
\newcommand\pretextualchapter%
{%
\if@openright\cleardoublepage\else\clearpage\fi%
\thispagestyle{\chaptertitlepagestyle}
\global\@topnum\z@%
\@afterindentfalse%
\@schapter%
}%
% Created useful \resetsubcounters from the code of \stepcounter.
\newcommand{\resetsubcounters}[1]{%
\begingroup
\let\@elt\@stpelt
\csname cl@#1\endcsname
\endgroup}
%% \ProximoForaDoSumario -> taking out some chapter or section from toc.
\newboolean{ABNTNextOutOfTOC}
\setboolean{ABNTNextOutOfTOC}{false}
%% \ProximoForaDoSumario[mark text]
% Now \ProximoForaDoSumario (re)sets the marks too. If one still want the
% marks, he/she must use it as the optional parameter of this command.
\newcommand{\ABNTnextmark}{}
\newcommand{\ProximoForaDoSumario}[1][]
{
\setboolean{ABNTNextOutOfTOC}{true}
\renewcommand{\ABNTnextmark}{#1}
}
\newcommand{\ABNTaddcontentsline}[3]%
{\ifthenelse{\boolean{ABNTNextOutOfTOC}}
{\setboolean{ABNTNextOutOfTOC}{false}}
{\addcontentsline{#1}{#2}{#3}}%
}
\newcommand{\ABNTchaptermark}[1]
{%
\ifthenelse{\boolean{ABNTNextOutOfTOC}}
{\markboth{\ABNTnextmark}{\ABNTnextmark}}
{\chaptermark{#1}}%
}
\newcommand{\ABNTsectionmark}[1]
{%
\ifthenelse{\boolean{ABNTNextOutOfTOC}}
{\markright{\ABNTnextmark}}
{\sectionmark{#1}}%
}
% \@chapter :
\def\@chapter[#1]#2%
{\ifthenelse{\boolean{ABNThypertoc}}{\renewcommand{\theHchapter}{\chaptertype\thechapter}}{}
\ifnum \c@secnumdepth >\m@ne
\refstepcounter{chapter}%
\ABNTchaptermark{#1}% This command MUST came before addcontentsline
\typeout{\@chapapp\space\thechapter.}%
\ifthenelse{\boolean{ABNTaftertoc}}
{\ABNTaddcontentsline{toc}{chapter}%
{\protect\numberline{\thechapter}#1}}
{}
\else
\ABNTchaptermark{#1}% This command MUST came before addcontentsline
\ifthenelse{\boolean{ABNTaftertoc}}%
{\ABNTaddcontentsline{toc}{chapter}{#1}}%
{}%
\fi
\if@twocolumn
\@topnewpage[\@makechapterhead{#2}]%
\else
\@makechapterhead{#2}%
\@afterheading
\fi\par}
%% From the \@chapter code. Now \@schapter does almost the same as
%% \@chapter. Added \resetsubcounters.
\def\@schapter#1{%
\ifthenelse{\boolean{ABNThypertoc}}{\renewcommand{\theHchapter}{\chaptertype\thechapter}}{}
\if@twocolumn
\@topnewpage[\@makeschapterhead{#1}]
\else
\@makeschapterhead{#1}
\@afterheading
\fi
\@mkboth{#1}{#1} % <-- inserted (must be before addcontentsline)
\ifthenelse{\boolean{ABNTincludeintoc}}%
{%
\ifthenelse{\boolean{ABNTaftertoc}}
{\ABNTaddcontentsline{toc}{chapter}{#1}}
{}
}%
{}
\resetsubcounters{chapter}\par
}%
% Fonts in \@part and \@part* changed. Some \resetsubcounters added.
\def\@part[#1]#2{%
\ifnum \c@secnumdepth >-2\relax
\refstepcounter{part}%
\ABNTaddcontentsline{toc}{part}{\protect\numberline{\thepart}#1}%
\else
\resetsubcounters{part}
\ABNTaddcontentsline{toc}{part}{#1}%
\fi
\markboth{}{}%
{\centering
\interlinepenalty \@M
\normalfont
\ifnum \c@secnumdepth >-2\relax
%\ABNTchapterfont\huge\ifthenelse{\boolean{ABNTcapchap}}%
% {\MakeUppercase{\partname~\thepart}}%
% {\partname~\thepart}
\ABNTchapterfont\LARGE\ifthenelse{\boolean{ABNTcapchap}}%
{\MakeUppercase{\partname~\thepart}}%
{\partname~\thepart}
\par
\vskip 20\p@
\fi
%\ABNTchapterfont\Huge\ifthenelse{\boolean{ABNTcapchap}}%
% {\MakeUppercase{#2}}%
% {#2}\par}%
\ABNTchapterfont\LARGE\ifthenelse{\boolean{ABNTcapchap}}%
{\MakeUppercase{#2}}%
{#2}\par}%
\@endpart}
\def\@spart#1{%
\ABNTaddcontentsline{toc}{part}{#1}%
\markboth{}{}%
{\centering
\interlinepenalty \@M
\normalfont
\ABNTchapterfont\Huge\ifthenelse{\boolean{ABNTcapchap}}%
{\MakeUppercase{#1}}%
{#1}\par}%
\@endpart}
% From \@startsection. The only difference is that it calls \@ssect
% changing the meaning id the first parameter. Now, instead of indentation,
% it gives section level for TOC purposes.
\def\ABNTstartsection#1#2#3#4#5#6{%
\if@noskipsec \leavevmode \fi
\par
\@tempskipa #4\relax
\@afterindenttrue
\ifdim \@tempskipa <\z@
\@tempskipa -\@tempskipa \@afterindentfalse
\fi
\if@nobreak
\everypar{}%
\else
\addpenalty\@secpenalty\addvspace\@tempskipa
\fi
\@ifstar
{\ABNTssect{#1}{#4}{#5}{#6}}% #3 replaced by #1 here
{\@dblarg{\ABNTsect{#1}{#2}{#3}{#4}{#5}{#6}}}}
% I change the meaning of the first paramenter here. Instead of an indent
% skip, it is now the name of the section, for `toc' purposes.
\def\ABNTssect#1#2#3#4#5{%
\@tempskipa #3\relax
\ifdim \@tempskipa>\z@
\begingroup
#4{%
\interlinepenalty \@M \centering
\ifthenelse{\boolean{ABNTcapsec}}
{\MakeUppercase{#5}}{#5}\@@par}%
\endgroup
\@ifundefined{ABNT#1mark}{}{\csname ABNT#1mark\endcsname{#5}}
\ifthenelse{\boolean{ABNTincludeintoc}}
{\ABNTaddcontentsline{toc}{#1}{#5}}
{}
\else
\def\@svsechd{#4{#5}%
\@ifundefined{ABNT#1mark}{}{\csname ABNT#1mark\endcsname{#5}}
\ifthenelse{\boolean{ABNTincludeintoc}}%
{\ABNTaddcontentsline{toc}{#1}{#5}}{}
}%
\fi
\@xsect{#3}}
\def\ABNTsect#1#2#3#4#5#6[#7]#8{%
\ifnum #2>\c@secnumdepth
\let\@svsec\@empty
\else
\refstepcounter{#1}%
\protected@edef\@svsec{\@seccntformat{#1}\relax}%
\fi
\@tempskipa #5\relax
\ifdim \@tempskipa>\z@
\begingroup
#6{%
\@hangfrom{\hskip #3\relax\@svsec}%
\interlinepenalty \@M
\ifthenelse{\boolean{ABNTcapsec}}
{\MakeUppercase{#8}}{#8}\@@par}%
\endgroup
\@ifundefined{ABNT#1mark}{}{\csname ABNT#1mark\endcsname{#7}}
\ABNTaddcontentsline{toc}{#1}{%
\ifnum #2>\c@secnumdepth \else
\protect\numberline{\csname the#1\endcsname}%
\fi
#7}%
\else
\def\@svsechd{%
#6{\hskip #3\relax
\@svsec \ifthenelse{\boolean{ABNTcapsec}}
{\MakeUppercase{#8}}{#8}}%
\@ifundefined{ABNT#1mark}{}{\csname ABNT#1mark\endcsname{#7}}
\ABNTaddcontentsline{toc}{#1}{%
\ifnum #2>\c@secnumdepth \else
\protect\numberline{\csname the#1\endcsname}%
\fi
#7}}%
\fi
\@xsect{#5}}
%%%%%%%%%%%%%%%%%% end of Special definitions %%%%%%%%%%%%%%%%
% adding style for page numbers required by NBR 6027
\let\old@dottedtocline\@dottedtocline
\renewcommand{\@dottedtocline}[5]{%
\ifthenelse{\boolean{ABNTpagenumstyle}}
{%
{\renewcommand{\@pnumwidth}{2.5em}%
\renewcommand{\@tocrmarg}{3.5em}
\old@dottedtocline{#1}{#2}{#3}{#4}%
{\ifthenelse{\equal{#5}{}}{}{p.\thinspace#5}}}%
}%
{\old@dottedtocline{#1}{#2}{#3}{#4}{#5}}%
}
%% Font which chapter titles will be printed
\ifthenelse{\boolean{ABNTcapchap}}
{\newcommand{\ABNTchapterfont}{\bfseries\slshape}}
%{\newcommand{\ABNTchapterfont}{\bfseries\itshape}}
\newcommand{\ABNTchapterfont}{\bfseries}
\newcommand{\ABNTtocchapterfont}{\ABNTchapterfont\upshape}
%% Font which section titles will be printed
\newcommand{\ABNTsectionfont}{\bfseries}
%% In order to \MakeUppercase do not apply to math mode in chapter or
%% section titles, package textcase used
%
% Sorry, a bug on textcase adds extra space before text. User can fix it by
% him/herself.
%
%\ifthenelse{\boolean{ABNTcapchap}\or\boolean{ABNTcapsec}}
% {\IfFileExists{textcase.sty}
% {\RequirePackage[overload]{textcase}}
% {}
% }
% {}
\newcommand{\ABNTchaptersize}{\huge}
% Defining how is typeset the \chapter
\def\@makechapterhead#1{%
{%
% \noindent\rule{\textwidth}{1.7pt}\\\par
\normalfont\ABNTchaptersize\ABNTchapterfont%
\espaco{simples}%
\vspace*{30pt}%
\noindent%
\parbox[b]{\textwidth}{%
\parbox[t]{4ex}{\thechapter}%
\parbox[t]{\textwidth-4ex-1ex}%
{\interlinepenalty\@M\raggedright%
\ifthenelse{\boolean{ABNTcapchap}}%
{\MakeUppercase{#1}}%
{#1}
}%
\vspace*{0cm}
}\\[2pt]%
\vspace{50pt}%
}%
}
% Defining how is typeset the \chapter*
\def\@makeschapterhead#1{%
\vspace*{0pt}\par
{\centering\normalfont\ABNTchaptersize\ABNTchapterfont%
\ifthenelse{\boolean{ABNTcapchap}}%
{\MakeUppercase{#1}}%
{#1}
\par}%
\vspace{45pt}%
\par%
}
% redefining to apply tocnumpageabnt
\renewcommand\l@chapter[2]{%
\ifnum \c@tocdepth >\m@ne
\addpenalty{-\@highpenalty}%
\vskip 1.0em \@plus\p@
\setlength\@tempdima{1.5em}%
\begingroup
\ifthenelse{\boolean{ABNTpagenumstyle}}
{\renewcommand{\@pnumwidth}{3.5em}}
{}
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
\leavevmode \normalsize\ABNTtocchapterfont
\advance\leftskip\@tempdima
\hskip -\leftskip
#1\nobreak\hfil \nobreak%
\ifthenelse{\boolean{ABNTpagenumstyle}}
{%
\hb@xt@\@pnumwidth{\hss
\ifthenelse{\not\equal{#2}{}}{{\normalfont p.\thinspace#2}}{}}\par
}
{%
\hb@xt@\@pnumwidth{\hss #2}\par
}
\penalty\@highpenalty
\endgroup
\fi}
% redefine to apply style
\renewcommand\part{%
\if@openright\cleardoublepage\else\clearpage\fi%
\thispagestyle{\chaptertitlepagestyle}%
\if@twocolumn\onecolumn\@tempswatrue\else\@tempswafalse\fi%
\null\vfil\secdef\@part\@spart}%
\renewcommand\l@part[2]{%
\ifnum \c@tocdepth >-2\relax
\addpenalty{-\@highpenalty}%
\addvspace{2.25em \@plus\p@}%
\begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
\noindent{\leavevmode
\ABNTtocchapterfont\large\noindent%
#1\hfil \hb@xt@\@pnumwidth{\hss #2}}\par
\nobreak
\global\@nobreaktrue
\everypar{\global\@nobreakfalse\everypar{}}%
\endgroup
\fi}
\renewcommand\section{\ABNTstartsection{section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\espaco{simples}\normalfont%
\ABNTsectionfont\Large}}
\renewcommand\subsection{\ABNTstartsection{subsection}{2}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\espaco{simples}\normalfont%
\ABNTsectionfont\large}}
\renewcommand\subsubsection{\ABNTstartsection{subsubsection}{3}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\espaco{simples}\normalfont%
\ABNTsectionfont\normalsize}}
\renewcommand\paragraph{\ABNTstartsection{paragraph}{4}{\z@}%
{3.25ex \@plus1ex \@minus.2ex}%
{-1em}%
{\espaco{simples}\normalfont%
\ABNTsectionfont\normalsize}}
\renewcommand\subparagraph{\ABNTstartsection{subparagraph}{5}{\parindent}%
{3.25ex \@plus1ex \@minus .2ex}%
{-1em}%
{\espaco{simples}\normalfont%
\ABNTsectionfont\normalsize}}
%\renewcommand*\l@section{\@dottedtocline{1}{1.5em}{2.3em}}
%\renewcommand*\l@subsection{\@dottedtocline{2}{3.8em}{3.2em}}
%\renewcommand*\l@subsubsection{\@dottedtocline{3}{7.0em}{4.1em}}
%\renewcommand*\l@paragraph{\@dottedtocline{4}{10em}{5em}}
%\renewcommand*\l@subparagraph{\@dottedtocline{5}{12em}{6em}}
%%%%%%%%%% Implementation for Annex and Appendix
%
\providecommand{\annexname}{Anexo}
\providecommand{\appendixname}{Ap\^endice} % for completeness ;-)
\newcommand{\anapchaptername}{\relax}
\newcommand*{\ABNTtravessao}{-$\!$-}
\def\@anapchapter[#1]#2%
{
\refstepcounter{chapter}%
\ifthenelse{\boolean{ABNTAnApName}}
{
\begingroup
\ifthenelse{\equal{#1}{}}
{\def\thechapter{\anapchaptername{} \Alph{chapter}}}
{\def\thechapter{\anapchaptername{} \Alph{chapter}{}
\ABNTtravessao{} #1}}
\ABNTchaptermark{}
\endgroup
\if@twocolumn
\@topnewpage[\@makeanapchapterhead{#2}]%
\else
\@makeanapchapterhead{#2}%
\@afterheading
\fi
}
{
\ABNTchaptermark{#1}
\if@twocolumn
\@topnewpage[\@makechapterhead{#2}]%
\else
\@makechapterhead{#2}%
\@afterheading
\fi
}
\ifnum \c@secnumdepth >\m@ne
\typeout{\@chapapp\space\thechapter.}%
\ifthenelse{\boolean{ABNTAnApName}}{
\ifthenelse{\equal{#1}{}}
{\ABNTaddcontentsline{toc}{chapter}%
{\anapchaptername{} \thechapter}}
{\ABNTaddcontentsline{toc}{chapter}%
{\anapchaptername{} \thechapter{} \ABNTtravessao{} #1}}
}
{
\ABNTaddcontentsline{toc}{chapter}%
{\protect\numberline{\thechapter}#1}
}
\else
\ABNTaddcontentsline{toc}{chapter}{#1}
\fi
\par
}
\newlength{\ABNTanapindent}
\setlength{\ABNTanapindent}{0cm}
\newcommand{\ABNTanapsize}{\LARGE}
\newcommand{\ABNTaposindicativoanap}{\relax}
\def\@makeanapchapterhead#1{%
{%
% \noindent\rule{\textwidth}{1.7pt}\\\par
\normalfont\ABNTchapterfont\ABNTanapsize
\espaco{simples}
\ifthenelse{\boolean{ABNTAnApIndicativoIndent}}
{\ifthenelse{\boolean{ABNTCapAnnexAppendix}}
{\settowidth{\ABNTanapindent}{\MakeUppercase{\anapchaptername}
\thechapter{} \ABNTtravessao{} }}
{\settowidth{\ABNTanapindent}{\anapchaptername}
\thechapter{} \ABNTtravessao{} }
}
{}
\vspace*{30pt}
%
\raggedright\espaco{1.2}\par
\begin{list}{}{%
\setlength{\listparindent}{0cm}%
\setlength{\itemindent}{-\ABNTanapindent}%
\setlength{\rightmargin}{0cm}%
\setlength{\leftmargin}{\ABNTanapindent}%
\setlength{\parsep}{0pt}}%
\item %
\ifthenelse{\equal{#1}{}}
{\ifthenelse{\boolean{ABNTCapAnnexAppendix}}
{\MakeUppercase{\anapchaptername}}
{\anapchaptername}
\thechapter \ABNTaposindicativoanap}
{\ifthenelse{\boolean{ABNTCapAnnexAppendix}}
{\MakeUppercase{\anapchaptername}}
{\anapchaptername}
\thechapter{} \ABNTtravessao{} \ABNTaposindicativoanap
\ifthenelse{\boolean{ABNTcapchap}}%
{\MakeUppercase{#1}}%
{#1}}
\end{list}
\par\vspace{50pt}%
}%
}
\renewcommand{\appendix}{
\setcounter{chapter}{0}
\resetsubcounters{chapter}
\gdef\thechapter{\Alph{chapter}}
\ifthenelse{\boolean{ABNThypertoc}}{\renewcommand{\chaptertype}{appen.}}{}
\gdef\@chapapp{Apendice}
\renewcommand{\anapchaptername}{\appendixname}
\global\let\@chapter\@anapchapter}
\let\apendice\appendix
\newcommand{\annex}{
\setcounter{chapter}{0}
\resetsubcounters{chapter}
\gdef\thechapter{\Alph{chapter}}
\ifthenelse{\boolean{ABNThypertoc}}{\renewcommand{\chaptertype}{annex.}}{}
\gdef\@chapapp{Anexo}
\renewcommand{\anapchaptername}{\annexname}
\global\let\@chapter\@anapchapter}
\let\anexo\annex
%%%%%%%%%% end of code for Annex and Appendix
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Redefing important commands (those that set marks)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Redefining \tableofcontents, \listoffigures, \listoftables,
% thebibliography, theindex extracing explicit \MakeUpercase in page marks
\newboolean{ABNTrestorecol} % new boolean to avoid conflicts
% ==== \tableofcontents ====
% do exactly what old \tableofcontents used to do, but had to be redefined
% since \chapter* (used in \tableofcontents' old definition) was redefined.
\renewcommand{\tableofcontents}{%
\ifthenelse{\boolean{@twocolumn}}%
{\setboolean{ABNTrestorecol}{true}\onecolumn}%
{\setboolean{ABNTrestorecol}{false}}%
\if@openright\cleardoublepage\else\clearpage\fi
\thispagestyle{\chaptertitlepagestyle}
\global\@topnum\z@
\@afterindentfalse
\@makeschapterhead{\contentsname}%
\@afterheading
\@mkboth{\contentsname}{\contentsname}
\@starttoc{toc}%
\ifthenelse{\boolean{ABNTrestorecol}}{\twocolumn}{}%
\if@openright\cleardoublepage\else\clearpage\fi%
\setboolean{ABNTaftertoc}{true}
}%
\let\sumario\tableofcontents\relax
% ==== \listoffigures ====
% In the same spirit of table of contents, it does the same as the old one,
% but now a test was included due "complete contents" feature.
\renewcommand{\listoffigures}{%
\ifthenelse{\boolean{@twocolumn}}%
{\setboolean{ABNTrestorecol}{true}\onecolumn}%
{\setboolean{ABNTrestorecol}{false}}%
\ifthenelse{\boolean{ABNThypertoc}}{\renewcommand{\chaptertype}{listoffigures.}}{}
\pretextualchapter{Lista de figuras}
\ifthenelse{\boolean{ABNThypertoc}}{\renewcommand{\chaptertype}{}}{}
\@starttoc{lof}%
\ifthenelse{\boolean{ABNTrestorecol}}{\twocolumn}{}%
}%
\let\listadefiguras\listoffigures\relax
% ==== \listoftables ====
% Same comments in \listoffigures
\renewcommand\listoftables{%
\ifthenelse{\boolean{@twocolumn}}%
{\setboolean{ABNTrestorecol}{true}\onecolumn}%
{\setboolean{ABNTrestorecol}{false}}%
\ifthenelse{\boolean{ABNThypertoc}}{\renewcommand{\chaptertype}{listoftables.}}{}
\pretextualchapter{Lista de tabelas}
\ifthenelse{\boolean{ABNThypertoc}}{\renewcommand{\chaptertype}{}}{}
\@starttoc{lot}%
\ifthenelse{\boolean{ABNTrestorecol}}{\twocolumn}{}%
}%
\let\listadetabelas\listoftables\relax
% ==== thebibliography ====
% Almost equal to old thebibliography, but without capital page marks
% and automatically in toc if active ``sumario completo''
\renewenvironment{thebibliography}[1]%
{% replacing \chapter*{\refname\@mkboth...}
\if@openright\cleardoublepage\else\clearpage\fi%
\thispagestyle{\chaptertitlepagestyle}%
\global\@topnum\z@%
\@afterindentfalse%
\@mkboth{\refname}{\refname}% end \chapter*{\refname...}
\ifthenelse{\boolean{ABNTincludeintoc}}%
{\ABNTaddcontentsline{toc}{chapter}{\refname}}%
{}%
\if@twocolumn%
\@topnewpage[\@makeschapterhead{\refname}]%
\else%
\@makeschapterhead{\refname}%
\@afterheading%
\fi%
\list{\@biblabel{\@arabic\c@enumiv}}%
{\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth%
\advance\leftmargin\labelsep%
\@openbib@code%
\usecounter{enumiv}%
\let\p@enumiv\@empty%
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
\sloppy%
\espaco{simples}
\clubpenalty4000%
\@clubpenalty \clubpenalty%
\widowpenalty4000%
\sfcode`\.\@m%
}% end of \begin{thebibliography}
{\def\@noitemerr
{\@latex@warning{Empty `thebibliography' environment}}%
\endlist%
}% end of \end{thebibliography}
\newboolean{ABNTbalancedindex}
\setboolean{ABNTbalancedindex}{true}
\newcommand*\IndiceNaoBalanceado{\setboolean{ABNTbalancedindex}{false}}
% ==== theindex ====
% Similar to old theindex, but without capital page marks, automatically
% in toc and now with balanced colunms
\renewenvironment{theindex}%
{%
\ifthenelse{\boolean{@twocolumn}}%
{\setboolean{ABNTrestorecol}{true}\onecolumn}%
{\setboolean{ABNTrestorecol}{false}}%
\if@openright\cleardoublepage\else\clearpage\fi%
\thispagestyle{\chaptertitlepagestyle}%
\global\@topnum\z@%
\@afterindentfalse%
\@mkboth{\indexname}{\indexname}%
\ifthenelse{\boolean{ABNTincludeintoc}}%
{\ABNTaddcontentsline{toc}{chapter}{\indexname}}%
{}%
\@makeschapterhead{\indexname}%
\@afterheading%
\begingroup%
\setlength{\columnsep}{35pt}%
\setlength{\columnseprule}{0pt}
\ifthenelse{\boolean{ABNTbalancedindex}}
{\begin{multicols}{2}}
{\begin{multicols*}{2}}%
\espaco{simples}%
\setlength{\parindent}{0cm}%
\setlength{\parskip}{.3pt}%
\let\item\@idxitem%
}%
{%
\ifthenelse{\boolean{ABNTbalancedindex}}
{\end{multicols}}
{\end{multicols*}}%
\endgroup%
\ifthenelse{\boolean{ABNTrestorecol}}{\twocolumn}{}%
}%
%%%%%%%%%%%%%% Flexibility on captions %%%%%%%%%%%%%%%%%
%
% Temporarely removed. Not really required.
%
%\newcommand{\ABNTcaptionsep}{: }
%
%\long\def\@makecaption#1#2{%
% \vskip\abovecaptionskip
% \sbox\@tempboxa{#1\ABNTcaptionsep #2}%
% \ifdim \wd\@tempboxa >\hsize
% #1\ABNTcaptionsep #2\par
% \else
% \global \@minipagefalse
% \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
% \fi
% \vskip\belowcaptionskip}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Environment `citado'=`citacao', similar to quoation, but with 4cm of
%% extra left margin, in a smaller font and simple line spacing.
\newenvironment{citado}%
{\begin{espacosimples}%
\small
\begin{list}{}{%
\setlength{\listparindent}{0cm}%
\setlength{\itemindent}{\listparindent}%
\setlength{\rightmargin}{0cm}%
\setlength{\leftmargin}{4cm}%
\setlength{\parsep}{0pt}}%
\item\relax}%
{\end{list}\end{espacosimples}}
\newenvironment{citacao}%
{\begin{citado}}%
{\end{citado}}%
%% Contents shows up to subsubsection.
\setcounter{tocdepth}{4}
%% Section number will appear up to \subsubsection
\setcounter{secnumdepth}{3}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Pre-textual elements %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% CAPA - contem autor, titulo (com subtitulo incluido), local e data.
%
% FOLHA DE ROSTO - contem, no anverso : autor, titulo (com subtitulo
% incluido, se houver), nome do curso e area de concentracao, orientador e
% co-orientador (se for o caso), local e ano da apresentacao.
\providecommand{\ABNTinstituicaodata}{}
\newcommand{\instituicao}[1]{\renewcommand{\ABNTinstituicaodata}{#1}}
\newcommand{\instituicaoformat}{\scshape}
\providecommand{\ABNTautordata}{}
\newcommand{\autor}[1]{\renewcommand{\ABNTautordata}{#1}}
\newcommand{\autorformat}{\large\ABNTsectionfont}
\providecommand{\ABNTorientadordata}{}
\providecommand{\ABNTorientadorname}{}
\newcommand{\orientador}[2][Orientador:\vspace{1mm}\\]%
{\renewcommand{\ABNTorientadorname}{#1}%
\renewcommand{\ABNTorientadordata}{#2}}
\newcommand{\orientadornameformat}{}
\newcommand{\orientadorformat}{\large}
\providecommand{\ABNTcoorientadordata}{}
\providecommand{\ABNTcoorientadorname}{}
\newcommand{\coorientador}[2][Co-orientador:\vspace{1mm}\\]%
{\renewcommand{\ABNTcoorientadorname}{#1}%
\renewcommand{\ABNTcoorientadordata}{#2}}
\newcommand{\coorientadornameformat}{}
\newcommand{\coorientadorformat}{\large}
\providecommand{\ABNTtitulodata}{}
\newcommand{\titulo}[1]{\renewcommand{\ABNTtitulodata}{#1}}
\newcommand{\tituloformat}{\LARGE\ABNTchapterfont}
\providecommand{\ABNTcomentariodata}{}
\newcommand{\comentario}[1]{\renewcommand{\ABNTcomentariodata}{#1}}
\newcommand{\comentarioformat}{}
\providecommand{\ABNTlocaldata}{}
\newcommand{\local}[1]{\renewcommand{\ABNTlocaldata}{#1}}
\newcommand{\localformat}{}
\providecommand{\ABNTdatadata}{}
\newcommand{\data}[1]{\renewcommand{\ABNTdatadata}{#1}}
\newcommand{\dataformat}{}
\newcommand{\ABNTifnotempty}[2]{\ifthenelse{\not\equal{#1}{}}{#2}{}}
\newcommand{\capa}%
{%
% replacing \begin{titlepage}
\if@twocolumn
\@restonecoltrue\onecolumn
\else
\@restonecolfalse\newpage
\fi
\thispagestyle{empty}%
\setcounter{page}\z@
\vspace*{1cm}
\espaco{1.1}
\ABNTifnotempty{\ABNTautordata}%
{%
\begin{center}
\autorformat\ABNTautordata
\end{center}
}
\vfill\vfill
\ABNTifnotempty{\ABNTtitulodata}%
{%
\begin{center}
{\tituloformat\ABNTtitulodata\par}
\end{center}
}%
\vspace*{1cm}
\vfill\vfill\vfill
\begin{center}
\begin{espacosimples}
\setlength{\parskip}{.3cm}
\ABNTifnotempty{\ABNTlocaldata}
{{\localformat\ABNTlocaldata}\par}
\ABNTifnotempty{\ABNTdatadata}
{{\dataformat\ABNTdatadata}}
\end{espacosimples}
\end{center}
\vspace*{1cm}
% replacing \end{titlepage} by its meaning
\if@restonecol\twocolumn \else \newpage \fi
\espaco{\ABNTespacodefault}%Corrige bug 114
}% end of \capa
\newcommand{\folhaderosto}%
{%
\begin{titlepage}
\espaco{1.1}
\ABNTifnotempty{\ABNTautordata}%
{%
\begin{center}
\autorformat\ABNTautordata
\end{center}
}
\vfill\vfill%\vfill
\ABNTifnotempty{\ABNTtitulodata}%
{%
\begin{center}
{\tituloformat\ABNTtitulodata\par}
\end{center}
}%
\vspace{2cm}
\ABNTifnotempty{\ABNTcomentariodata}%
{%
\vspace{.8cm}
\hspace{.45\textwidth}
\begin{minipage}{.5\textwidth}
\begin{espacosimples}
{\comentarioformat\ABNTcomentariodata}\par
\end{espacosimples}
\end{minipage}
}
\vspace{.8cm}
\begin{center}
\ABNTifnotempty{\ABNTorientadordata}%
{%
{\orientadornameformat\ABNTorientadorname}
{\orientadorformat\ABNTorientadordata}\protect\\
\vspace{0.7cm}
}
\ABNTifnotempty{\ABNTcoorientadordata}
{%
{\coorientadornameformat\ABNTcoorientadorname}
{\coorientadorformat\ABNTcoorientadordata}
}
\end{center}
\vfill
\begin{center}
\begin{espacosimples}
\setlength{\parskip}{.3cm}
\ABNTifnotempty{\ABNTinstituicaodata}%
{%
\setlength{\parskip}{0cm}
{\instituicaoformat\ABNTinstituicaodata\par}
\setlength{\parskip}{.3cm}\par
}
\end{espacosimples}
\end{center}
\vfill\vfill
\begin{center}
\ABNTifnotempty{\ABNTlocaldata}
{{\localformat\ABNTlocaldata}\par}
\ABNTifnotempty{\ABNTdatadata}
{{\dataformat\ABNTdatadata}}
\end{center}
\end{titlepage}
}% end of \folhaderosto
%%%%%%%%%%% abstract %%%%%%%%%%%
% Ambiente para Abstract. Por default, coloca fonte de tamanho 10pt
% e com espaco simples entre linhas.
% Obs.: this code will be reimplemented for better LaTeX concept support
\newcommand{\ABNTabstractname}{Abstract}
\renewenvironment{abstract}%
{%
\if@openright\cleardoublepage\else\clearpage\fi%
\ifthenelse{\boolean{ABNThypertoc}}{\renewcommand{\chaptertype}{abstract.}}{}
\pretextualchapter{\ABNTabstractname}%
\ifthenelse{\boolean{ABNThypertoc}}{\renewcommand{\chaptertype}{}}{}
\begin{espacosimples}%
}%
{\end{espacosimples}\newpage}%abstract
%%%%%%%%%%% resumo %%%%%%%%%%%
% Ambiente para Resumo. O mesmo efeito do abstract, mas em portugues.
%
\newcommand{\resumoname}{Resumo}
\newenvironment{resumo}%
{%
\if@openright\cleardoublepage\else\clearpage\fi%
\ifthenelse{\boolean{ABNThypertoc}}{\renewcommand{\chaptertype}{resumo.}}{}
\pretextualchapter{\resumoname}%
\ifthenelse{\boolean{ABNThypertoc}}{\renewcommand{\chaptertype}{}}{}
\begin{espacosimples}%
}%
{\end{espacosimples}\newpage}%abstract
%%%%%%% Folha de aprovacao %%%%%%%
% Command \assinatura for signature
% width of the line and text under the line
\newlength{\ABNTsignwidth}
\setlength{\ABNTsignwidth}{8cm}
% thickness of the line
\newlength{\ABNTsignthickness}
\setlength{\ABNTsignthickness}{0pt}
% ammount of space left between previous text and th signature line
\newlength{\ABNTsignskip}
\setlength{\ABNTsignskip}{2.5cm}
% \assinatura{name} -> types a line with name under the line, centralized
%
% \assinatura*{name} -> Creates the box with the line and name under
% it, but the box has no position assigned. However the line and the
% name are centralized with respect to each other.
\newcommand{\assinatura}{\@ifstar{\ABNTsign}{\ABNTcsign}}
\newcommand{\ABNTsign}[1]{%
\parbox[t]{\ABNTsignwidth}{\espaco{simples}\vspace*{\ABNTsignskip}\centering%
\rule{\ABNTsignwidth}{\ABNTsignthickness}\\%
\nopagebreak #1\par}%
}
\newcommand{\ABNTcsign}[1]%
{\begingroup\par\centering\ABNTsign{#1}\par\endgroup}
% environment "folhadeaprovacao"
% just clearpage correctly to twoside and openright compatibility
%
\newenvironment{folhadeaprovacao}%
{\if@openright\cleardoublepage\else\clearpage\fi\begingroup}%
{\endgroup\if@openright\cleardoublepage\else\clearpage\fi}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% I will no longer include List of Symbols in the wishlist for this class.
%%%%%% Opcao de fonte Times como romano default
\ifthenelse{\boolean{ABNTtimesfont}}% if `times'option enabled...
{\IfFileExists{mathptmx.sty}% try `mathptmx' first
{\RequirePackage{mathptmx}}%
{\IfFileExists{mathptm.sty}% if not installed, try `mathptm'
{\RequirePackage{mathptm}}%
{\IfFileExists{times.sty} %
{\RequirePackage{times}}%
{\renewcommand{\rmdefault}{ptm}}%
}%
}%
\IfFileExists{helvet.sty}% including also Helvetica as sans serif.
{\RequirePackage{helvet}}%
{\IfFileExists{helvetic.sty}%
{\RequirePackage{helvetic}}%
{\renewcommand{\rmdefault}{phv}}%
}%
}%
{}
%%%%% auto bold math (try follow bold face in text)
% plan: redefine commands that change font to bold to ALSO change math
% version; I don't change all commands that change font weight because I
% suppose this uses are local
\AtBeginDocument{
\ifthenelse{\boolean{ABNTautobm}\and\not\isundefined{\mv@bold}}%
{%
% \bfseries
\let\ABNToldbfseries\bfseries\relax%
\renewcommand{\bfseries}{\mathversion{bold}\ABNToldbfseries}%
%
% \textbf{}
\let\ABNToldtextbf\textbf\relax%
\renewcommand{\textbf}[1]{\ABNToldtextbf{\mathversion{bold}#1}}%
%
% \bf
\let\ABNToldbf\bf\relax%
\renewcommand{\bf}{\mathversion{bold}\ABNToldbf}%
%
}%
{}%
}
%%%%%% Indent code
% indenting first paragraph of each section
\ifthenelse{\boolean{ABNTindentfirst}}%
{\RequirePackage{indentfirst}}%
{}
% paragraph indentation size and skip
\setlength{\parindent}{.7cm}
\setlength{\parskip}{.25cm}
% logo
\newcommand{\abnTeX}{{\scshape a\kern-.13exb\kern-.13exn}\kern-.13ex\TeX}
%%% final message - announcement %%%%
\AtEndDocument{%
\newcommand{\spABNT}{\space\space\space\space\space\space\space\space}%
\typeout{+-------------------------------------------------------------------+}
\typeout{%
| Comentario, sugestao ou critica sobre o abnTeX? Entre em contato: |}%
\typeout{%
|\spABNT\spABNT\space\space
http://abntex.codigolivre.org.br\space\spABNT\spABNT|}%
%\typeout{%
%| Sua opiniao eh de grande ajuda para nos.\spABNT Ass: grupo abnTeX |}%
\typeout{+-------------------------------------------------------------------+}
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% End of ABNT.CLS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\endinput