diff options
Diffstat (limited to 'macros/latex/contrib/abntex2/tex/abntex2.cls')
-rw-r--r-- | macros/latex/contrib/abntex2/tex/abntex2.cls | 1125 |
1 files changed, 1125 insertions, 0 deletions
diff --git a/macros/latex/contrib/abntex2/tex/abntex2.cls b/macros/latex/contrib/abntex2/tex/abntex2.cls new file mode 100644 index 0000000000..6be8cd7947 --- /dev/null +++ b/macros/latex/contrib/abntex2/tex/abntex2.cls @@ -0,0 +1,1125 @@ +%% abntex2.cls, v-1.9.7 laurocesar +%% Copyright 2012-2018 by abnTeX2 group at https://www.abntex.net.br/ +%% +%% 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 the abnTeX2 team, led +%% by Lauro César Araujo. Further information are available on +%% https://www.abntex.net.br/ +%% +%% This work consists of the file abntex2.cls. + +% ------------------------------------------------------------------------ +% ------------------------------------------------------------------------ +% Declaracao da classe abntex2 como uma extensao da classe memoir +% ------------------------------------------------------------------------ +% ------------------------------------------------------------------------ +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{abntex2}[2018/11/24 v-1.9.7 abnTeX2] +\RequirePackage{ifthen} +% +% Captura as options article e twocolumn +% +\providecommand{\ABNTEXisarticle}{false} +\DeclareOption{article}{ + \renewcommand{\ABNTEXisarticle}{true} + \PassOptionsToClass{article}{memoir}%} +} +\providecommand{\ABNTEXistwocolumn}{false} +\DeclareOption{twocolumn}{ + \renewcommand{\ABNTEXistwocolumn}{true} + \PassOptionsToClass{twocolumn}{memoir}%} +} +% +% Opcoes chapter=TITLE, section=TITLE, subsection=TITLE e +% subsubsection=TITLE: titulos em letras maiusculas +% +\newboolean{ABNTEXupperchapter} %true=titles of chapter/appendix in uppercase +\newboolean{ABNTEXuppersection} %true=titles of sections in uppercase +\newboolean{ABNTEXuppersubsection} %true=titles of subsections in uppercase +\newboolean{ABNTEXuppersubsubsection} %true=titles of subsubsections in uppercase +\newboolean{ABNTEXuppersubsubsubsection} %true=titles of subsubsubsections in uppercase +\setboolean{ABNTEXupperchapter}{false} +\setboolean{ABNTEXuppersection}{false} +\setboolean{ABNTEXuppersubsection}{false} +\setboolean{ABNTEXuppersubsubsection}{false} +\setboolean{ABNTEXuppersubsubsubsection}{false} +\DeclareOption{chapter=TITLE}{\setboolean{ABNTEXupperchapter}{true}} +\DeclareOption{section=TITLE}{\setboolean{ABNTEXuppersection}{true}} +\DeclareOption{subsection=TITLE}{\setboolean{ABNTEXuppersubsection}{true}} +\DeclareOption{subsubsection=TITLE}{\setboolean{ABNTEXuppersubsubsection}{true}} +\DeclareOption{subsubsubsection=TITLE}{\setboolean{ABNTEXuppersubsubsubsection}{true}} +% +% Opções de diagramação de sumários +% sumario=tradicional : Sumário tradicional do LaTeX/Memoir +% sumario=abnt-6027-2012 : Sumário conforme recomendação da ABNT NBR 6027:2012 +\newboolean{ABNTEXsumario-tradicional} %true=titles of chapter/appendix in uppercase +\newboolean{ABNTEXsumario-abnt-6027-2012} +\setboolean{ABNTEXsumario-tradicional}{false} +\setboolean{ABNTEXsumario-abnt-6027-2012}{true} +\DeclareOption{sumario=tradicional}{% + \setboolean{ABNTEXsumario-tradicional}{true}% + \setboolean{ABNTEXsumario-abnt-6027-2012}{false}} +\DeclareOption{sumario=abnt-6027-2012}{% + \setboolean{ABNTEXsumario-abnt-6027-2012}{true} + \setboolean{ABNTEXsumario-tradicional}{false}} +% +% Repassa demais opcoes a memoir +% +\DeclareOption*{% + \PassOptionsToClass{\CurrentOption}{memoir}% +} +\ProcessOptions\relax +\LoadClass{memoir} + +% sumario=abnt-6027-2012 : Sumário conforme recomendação da ABNT NBR 6027:2012, que +% soh pode ser usado com memoir v3.6k ou superior +% \settocpreprocessor \changes{v3.6k}{2012/09/18}{Added} +\ifdefined\settocpreprocessor +\else + \setboolean{ABNTEXsumario-tradicional}{true} + \setboolean{ABNTEXsumario-abnt-6027-2012}{false} +\fi + + +% ------------------------------------------------------------------------ +% ------------------------------------------------------------------------ +% Comandos para tratamento de opcoes proprias +% ------------------------------------------------------------------------ +% ------------------------------------------------------------------------ + +% --- +% Comandos para controlar as opcoes de titulos com letras maiusculas +% --- + +% pacote que prove \MakeTextUppercase +\RequirePackage{textcase} + +\newcommand{\ABNTEXchapterupperifneeded}[1]{\ifthenelse{\boolean{ABNTEXupperchapter}}{\MakeTextUppercase{#1}}{#1}} +\newcommand{\ABNTEXsectionupperifneeded}{\ifthenelse{\boolean{ABNTEXuppersection}}{\MakeTextUppercase}{}} +\newcommand{\ABNTEXsubsectionupperifneeded}{\ifthenelse{\boolean{ABNTEXuppersubsection}}{\MakeTextUppercase}{}} +\newcommand{\ABNTEXsubsubsectionupperifneeded}{\ifthenelse{\boolean{ABNTEXuppersubsubsection}}{\MakeTextUppercase}{}} +\newcommand{\ABNTEXsubsubsubsectionupperifneeded}{\ifthenelse{\boolean{ABNTEXuppersubsubsubsection}}{\MakeTextUppercase}{}} +% --- + +% ------------------------------------------------------------------------ +% ------------------------------------------------------------------------ +% Pacotes adicionais e customizacoes gerais do memoir +% ------------------------------------------------------------------------ +% ------------------------------------------------------------------------ + +% --- +% Do pacote de if/them/else +\newcommand{\abntex@ifnotempty}[2]{\ifthenelse{\not\equal{#1}{}}{#2}{}} +% --- + +% --- +% Controla as referencias internas do PDF +\RequirePackage{hyperref} +\pdfstringdefDisableCommands{\def\\{, }\def\and{; }} +% --- + +% --- +% Controla os bookmarks do PDF +\RequirePackage{bookmark} +% --- + +% --- +% Hifenizacao e caracteres especiais portugues-brasil por padrao +% --- +\RequirePackage[brazil]{babel} +% +% Nomes constantes do abnTeX2 em portugues (definicoes padroes) +\newcommand{\folhaderostoname}{Folha de rosto} +\newcommand{\epigraphname}{Ep\'igrafe} +\newcommand{\dedicatorianame}{Dedicat\'oria} +\newcommand{\errataname}{Errata} +\newcommand{\agradecimentosname}{Agradecimentos} +\newcommand{\anexoname}{ANEXO} +\newcommand{\anexosname}{Anexos} +\newcommand{\apendicename}{AP\^ENDICE} +\newcommand{\apendicesname}{Ap\^endices} +\newcommand{\orientadorname}{Orientador:} +\newcommand{\coorientadorname}{Coorientador:} +\newcommand{\folhadeaprovacaoname}{Folha de aprova\c{c}\~ao} +\newcommand{\resumoname}{Resumo} +\newcommand{\listadesiglasname}{Lista de abreviaturas e siglas} +\newcommand{\listadesimbolosname}{Lista de s\'imbolos} +\newcommand{\fontename}{Fonte} +\newcommand{\notaname}{Nota} +% +\addto\captionsbrazil{% portugues-brasil + %% ajusta nomes padroes do babel + \renewcommand{\bibname}{Refer\^encias} + \renewcommand{\indexname}{\'Indice} + \renewcommand{\listfigurename}{Lista de ilustra\c{c}\~{o}es} + \renewcommand{\listtablename}{Lista de tabelas} + %% ajusta nomes usados com a macro \autoref + \renewcommand{\pageautorefname}{p\'agina} + \renewcommand{\sectionautorefname}{se{\c c}\~ao} + \renewcommand{\subsectionautorefname}{subse{\c c}\~ao} + \renewcommand{\subsubsectionautorefname}{subse{\c c}\~ao} + \renewcommand{\paragraphautorefname}{subse{\c c}\~ao} +} +\addto\captionsenglish{% ingles + %% adjusts names from abnTeX2 + \renewcommand{\folhaderostoname}{Title page} + \renewcommand{\epigraphname}{Epigraph} + \renewcommand{\dedicatorianame}{Dedication} + \renewcommand{\errataname}{Errata sheet} + \renewcommand{\agradecimentosname}{Acknowledgements} + \renewcommand{\anexoname}{ANNEX} + \renewcommand{\anexosname}{Annex} + \renewcommand{\apendicename}{APPENDIX} + \renewcommand{\apendicesname}{Appendix} + \renewcommand{\orientadorname}{Supervisor:} + \renewcommand{\coorientadorname}{Co-supervisor:} + \renewcommand{\folhadeaprovacaoname}{Approval} + \renewcommand{\resumoname}{Abstract} + \renewcommand{\listadesiglasname}{List of abbreviations and acronyms} + \renewcommand{\listadesimbolosname}{List of symbols} + \renewcommand{\fontename}{Source} + \renewcommand{\notaname}{Note} + %% adjusts names used by \autoref + \renewcommand{\pageautorefname}{page} + \renewcommand{\sectionautorefname}{section} + \renewcommand{\subsectionautorefname}{subsection} + \renewcommand{\subsubsectionautorefname}{subsubsection} + \renewcommand{\paragraphautorefname}{subsubsubsection} +} +% --- + +% --- +% Customiza listas +\RequirePackage{enumitem} +% --- + +% --- +% Pacote que permite realizar operacoes matematicas no codigo TeX +\RequirePackage{calc} +% --- + +% --- +% Margens - NBR 14724/2011 - 5.1 Formato +% --- +\setlrmarginsandblock{3cm}{2cm}{*} +\setulmarginsandblock{3cm}{2cm}{*} +\checkandfixthelayout +% --- + +% --- +% Espacamento entre linhas - NBR 14724/2011 - 5.2 Espacamento +% --- +\OnehalfSpacing +% --- + +% ------------------------------------------------------------------------ +% ------------------------------------------------------------------------ +% Comandos publicos +% ------------------------------------------------------------------------ +% ------------------------------------------------------------------------ + +% --- +% ``Tamanho menor e uniforme'' ditada pela NBR 14724/2011 - 5.1 +% --- +\newcommand{\ABNTEXfontereduzida}{\footnotesize} +% --- + +% --- +% abnTeX2 name +\newcommand{\abnTeX}{abn\TeX2} +% --- + +% --- +% Fontes padroes de part, chapter, section, subsection e subsubsection +\newcommand{\ABNTEXchapterfont}{\sffamily} +\newcommand{\ABNTEXchapterfontsize}{\Huge} + +\newcommand{\ABNTEXpartfont}{\ABNTEXchapterfont} +\newcommand{\ABNTEXpartfontsize}{\ABNTEXchapterfontsize} + +\newcommand{\ABNTEXsectionfont}{\ABNTEXchapterfont} +\newcommand{\ABNTEXsectionfontsize}{\Large} + +\newcommand{\ABNTEXsubsectionfont}{\ABNTEXsectionfont} +\newcommand{\ABNTEXsubsectionfontsize}{\large} + +\newcommand{\ABNTEXsubsubsectionfont}{\ABNTEXsubsectionfont} +\newcommand{\ABNTEXsubsubsectionfontsize}{\normalsize} + +\newcommand{\ABNTEXsubsubsubsectionfont}{\ABNTEXsubsectionfont} +\newcommand{\ABNTEXsubsubsubsectionfontsize}{\normalsize} +% --- + +% ------------------------------------------------------------------------ +% ------------------------------------------------------------------------ +% Comandos e variaveis privados +% ------------------------------------------------------------------------ +% ------------------------------------------------------------------------ + +% --- +% Comando para registro do bookmark interno +% --- +\newcounter{abntex@bookmarkcounter} +\setcounter{abntex@bookmarkcounter}{0} +\newcommand{\PRIVATEbookmarkthis}[1]{% + \addtocounter{abntex@bookmarkcounter}{1}% + \phantomsection\pdfbookmark[0]{#1}{chapterb\arabic{abntex@bookmarkcounter}} +} +% --- + +% --- +% Comando que cria capitulos nao numerados ja com bookmark anotado +% --- +\newcommand{\pretextualchapter}[1]{% + \addtocounter{abntex@bookmarkcounter}{1}% + \PRIVATEbookmarkthis{#1}% + \chapter*[#1]{#1}% + } +\provideboolean{abntex@apendiceousecao} +\setboolean{abntex@apendiceousecao}{false} +% --- + +% --- +% cleardoublepage se este documento nao for article +% --- +\newcommand{\PRIVATEclearpageifneeded}{% + \ifthenelse{\equal{\ABNTEXisarticle}{true}}{% + % + }{ % else + \cleardoublepage% + } +} + +% ------------------------------------------------------------------------ +% ------------------------------------------------------------------------ +% Configuracoes de layout +% ------------------------------------------------------------------------ +% ------------------------------------------------------------------------ + +% --- +% Notas de rodape - footnotes - NBR 14724/2011 - 5.2.1 +\setlength{\footmarkwidth}{1.2em} % largura do footnotemark +\setlength{\footmarksep}{0em} +\footmarkstyle{\footnotesize{\textsuperscript{#1}}\hfill} + +% tamanho da fonte do footnote +\renewcommand{\foottextfont}{\ABNTEXfontereduzida} +% --- + +% --- +% Numeracao continua das figuras +\ifthenelse{\equal{\ABNTEXisarticle}{true}}{% + \counterwithout{section}{chapter} + \counterwithout{figure}{section} + \counterwithout{table}{section} +}{%else + \counterwithout{figure}{chapter} + \counterwithout{table}{chapter} +} +% --- + +% --- +% Estilos de caption +% --- +\hangcaption +\newcommand{\ABNTEXcaptiondelim}{~\textendash~} +\newcommand{\ABNTEXcaptionfontedelim}{:~} +%\captionnamefont{\ABNTEXfontereduzida} +%\captiontitlefont{\ABNTEXfontereduzida} + +% Para uso com pacotes subfig e caption dentro do memoir se estes forem carregados ou não. +% É necessário para que os comandos \IBGEtab e \fonte funcionem +% independente do carregamento de pacotes externos ao memoir que tratam captions. +\newcommand{\IBGEtabfontsize}{\ABNTEXfontereduzida} +\AtBeginDocument{% + % comandos auxiliares para manipular os captions dentro do comando \IBGEtab. + \newcommand{\configurecaptions}{\captionstyle[\raggedright]{}} + \newcommand{\configureseparator}{\captiondelim{\ABNTEXcaptiondelim}} + % Define o comando \IBGEtab{}{}{} com caption e legenda da largura do conteúdo tabular, tabular*, etc + % Parece funcionar com qualque pacote + \newsavebox{\myptabbox} + \newlength{\myptabboxwidth} + \newcommand{\IBGEtab}[3]{% + \savebox{\myptabbox}{{\IBGEtabfontsize #2}}% + \settowidth{\myptabboxwidth}{\usebox{\myptabbox}}% + \centering% + \parbox{\myptabboxwidth}{% + \configurecaptions + #1% + \par% + {\IBGEtabfontsize% + #2% + }% + \par% + #3}% + } + \let\ibgetab\IBGEtab +} + +% Define o comando \fonte que respeita as configurações de caption do memoir ou do caption +\newcommand{\fonte}[2][\fontename]{% + \M@gettitle{#2}% + \memlegendinfo{#2}% + \par + \begingroup + \@parboxrestore + \if@minipage + \@setminipage + \fi + \ABNTEXfontereduzida + %\configureseparator + \captiondelim{\ABNTEXcaptionfontedelim} + \@makecaption{\ABNTEXfontereduzida #1}{\ignorespaces\ABNTEXfontereduzida #2}\par + \endgroup} + +% Define o comando \notas que respeita as configurações de caption do memoir ou do caption +\newcommand{\nota}[2][\notaname]{\fonte[#1]{#2}} + + +% Altera os comandos \configurecaptions e \configureseparator para trabalhar com +% o pacote caption e amigos. +\AtEndPackage{caption}{ + \AtBeginDocument{% + \DeclareCaptionLabelSeparator{barr}{\ABNTEXcaptiondelim} + \DeclareCaptionFont{ABNTEXfontereduzida}{\ABNTEXfontereduzida} + \captionsetup{format=hang, + labelseparator=barr, + %labelfont=ABNTEXfontereduzida, + %font=ABNTEXfontereduzida + } + \renewcommand{\configurecaptions}{% + \captionsetup{justification=justified,% + singlelinecheck=false}} + \renewcommand{\configureseparator}{\captionsetup{labelsep=colon}} + } +} + +\AtBeginDocument{ + \captiondelim{\ABNTEXcaptiondelim} +} +% --- + +% ----- +% Configuracoes do TOC +% ----- +% nivel de profundidade (implementa o quinto nivel - subsubsubsection) +\setsecnumdepth{paragraph} +\settocdepth{paragraph} +\setcounter{tocdepth}{5} +\setcounter{secnumdepth}{5} +\maxsecnumdepth{paragraph} + +% redefine os comandos *paragraph* para *subsubsubsection* **** +\newcommand{\subsubsubsection}{\paragraph} +\newcommand{\cftbeforesubsubsubsectionskip}{\cftbeforeparagraphskip} +\newcommand{\cftsubsubsubsectionfont}{\cftparagraphfont} +\newcommand{\setsubsubsubsecheadstyle}{\setparaheadstyle} + +\setafterparaskip{1.0\onelineskip plus 0.5\onelineskip minus 0.2\onelineskip} +\setparaheadstyle{\normalfont\sffamily\raggedright}% + +% lista de ilustracoes +\renewcommand{\cftfigurename}{\figurename\space} +\renewcommand*{\cftfigureaftersnum}{\hfill\textendash\hfill} + +% lista de tabelas +\renewcommand{\cfttablename}{\tablename\space} +\renewcommand*{\cfttableaftersnum}{\hfill\textendash\hfill} + +% fonte das partes e do capitulo do TOC +\renewcommand{\tocheadstart}{\ABNTEXchapterfont} + +% leaders para os capitulos +\renewcommand*{\cftchapterdotsep}{\cftdotsep} + +% suprime espaço entre os itens de listings de diferentes capítulos +\setlength{\cftbeforechapterskip}{0pt plus 0pt} +\renewcommand*{\insertchapterspace}{} + +% macros para configurar o Sumário conforme 6027-2012 ou tradicional cft +\cftinsertcode{A}{} + +\newlength{\cftlastnumwidth} +\setlength{\cftlastnumwidth}{\cftsubsubsectionnumwidth} +\addtolength{\cftlastnumwidth}{1em} + +\newcommand{\tocprintchapter}{} +\newcommand{\tocinnonumchapter}{} +\newcommand{\tocprintchapternonum}{} +\newcommand{\tocpartapendices}{} +\newcommand{\tocpartanexos}{} + +% insere o hifen no anexo/apendice do toc +\cftinsertcode{A}{\renewcommand{\cftchapteraftersnum}{\hfill\textendash\hfill}} + +% No caso de Sumario (TOC) tradicional +\ifthenelse{\boolean{ABNTEXsumario-tradicional}}{}{} % essa linha não faz nada, + % mas se houver necessidade de alterar o comportamento + % do sumário tradicional altere aqui. + +% No caso de Sumario (TOC) especifico da ABNT-6027-2012 + +\makeatletter +\ifthenelse{\boolean{ABNTEXsumario-abnt-6027-2012}}{ + \settocpreprocessor{chapter}{% + \let\tempf@rtoc\f@rtoc% + \def\f@rtoc{% + \texorpdfstring{\MakeTextUppercase{\tempf@rtoc}}{\tempf@rtoc}}% + } + \settocpreprocessor{part}{% + \let\tempf@rtoc\f@rtoc% + \def\f@rtoc{% + \texorpdfstring{\MakeTextUppercase{\tempf@rtoc}}{\tempf@rtoc}}% + } +}{} +\makeatother +% +\ifthenelse{\boolean{ABNTEXsumario-abnt-6027-2012}}{% + + \cftsetindents{part}{0em}{\cftlastnumwidth} + \cftsetindents{chapter}{0em}{\cftlastnumwidth} + \cftsetindents{section}{0em}{\cftlastnumwidth} + \cftsetindents{subsection}{0em}{\cftlastnumwidth} + \cftsetindents{subsubsection}{0em}{\cftlastnumwidth} + \cftsetindents{paragraph}{0em}{\cftlastnumwidth} + \cftsetindents{subparagraph}{0em}{\cftlastnumwidth} + % + \renewcommand{\tocprintchapter}{% + \addtocontents{toc}{\cftsetindents{chapter}{0em}{\cftlastnumwidth}}} + % + \renewcommand{\tocinnonumchapter}{% + \addtocontents{toc}{\cftsetindents{chapter}{\cftlastnumwidth}{2em}}% + \cftinserthook{toc}{A}} + % + \renewcommand{\tocprintchapternonum}{% + \addtocontents{toc}{\cftsetindents{chapter}{\cftlastnumwidth}{2em}}} + % + \renewcommand{\tocpartapendices}{% + \addtocontents{toc}{\cftsetindents{part}{\cftlastnumwidth}{2em}} + \cftinserthook{toc}{A}} + % + \renewcommand{\tocpartanexos}{% + \addtocontents{toc}{\cftsetindents{part}{\cftlastnumwidth}{2em}} + \cftinserthook{toc}{A}} + % + \setlength{\cftbeforechapterskip}{1em} + % + % Fontes das entradas do sumario + % + \renewcommand{\cftpartfont}{\bfseries\large} + % + \renewcommand{\cftchapterfont}{\bfseries} + \renewcommand{\cftchapterpagefont}{\normalsize\cftchapterfont} + % + \renewcommand{\cftsectionfont}{\bfseries} + \renewcommand{\cftsectionpagefont}{\cftsectionfont} + % + \renewcommand{\cftsubsectionfont}{\normalsize} + \renewcommand{\cftsubsectionpagefont}{\cftsubsectionfont} + % + \renewcommand{\cftsubsubsectionfont}{\small} + \renewcommand{\cftsubsubsectionpagefont}{\cftsubsubsectionfont} + % + \renewcommand{\cftparagraphfont}{\footnotesize} + \renewcommand{\cftparagraphpagefont}{\cftparagraphfont} + % + % Ajusta entrada Referencias + % + \renewcommand{\bibsection}{% + \chapter*{\bibname} + \bibmark + \ifnobibintoc\else + \phantomsection + \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeTextUppercase{\bibname}}{\bibname}} + \fi + \prebibhook +} + +}{} + +% Comando que simula a finalizacao de uma parte no bookmark e +% adiciona espaco de \part no sumario +\newcommand{\phantompart}{% + \bookmarksetup{startatroot}% + \phantomsection% + \ifthenelse{\boolean{ABNTEXsumario-abnt-6027-2012}}{% + \addtocontents{toc}{\vspace{\cftbeforechapterskip}}}{% + \addtocontents{toc}{\vspace{\cftbeforepartskip}}}% +} +% ----- + +% --- +% Configuracao dos titulos dos capitulos +% Novo estido do memoir +% ABNT NBR 14724-2011 - 5.2.2-5.2.4; ABNT NBR 6024-2003 - 3.1-3.8 +\provideboolean{abntex@innonumchapter} +\setboolean{abntex@innonumchapter}{true} +\makechapterstyle{abnt}{% + \renewcommand{\chapterheadstart}{} + + \ifx \chapternamenumlength \undefined + \newlength{\chapternamenumlength} + \fi + + % tamanhos de fontes de chapter e part + \ifthenelse{\equal{\ABNTEXisarticle}{true}}{% + \setlength\beforechapskip{\baselineskip} + \renewcommand{\chaptitlefont}{\ABNTEXsectionfont\ABNTEXsectionfontsize} + }{%else + \setlength{\beforechapskip}{0pt} + \renewcommand{\chaptitlefont}{\ABNTEXchapterfont\ABNTEXchapterfontsize} + } + + \renewcommand{\chapnumfont}{\chaptitlefont} + \renewcommand{\parttitlefont}{\ABNTEXpartfont\ABNTEXpartfontsize} + \renewcommand{\partnumfont}{\ABNTEXpartfont\ABNTEXpartfontsize} + \renewcommand{\partnamefont}{\ABNTEXpartfont\ABNTEXpartfontsize} + + % tamanhos de fontes de section, subsection, subsubsection e subsubsubsection + \setsecheadstyle{\ABNTEXsectionfont\ABNTEXsectionfontsize\ABNTEXsectionupperifneeded} + \setsubsecheadstyle{\ABNTEXsubsectionfont\ABNTEXsubsectionfontsize\ABNTEXsubsectionupperifneeded} + \setsubsubsecheadstyle{\ABNTEXsubsubsectionfont\ABNTEXsubsubsectionfontsize\ABNTEXsubsubsectionupperifneeded} + \setsubsubsubsecheadstyle{\ABNTEXsubsubsubsectionfont\ABNTEXsubsubsubsectionfontsize\ABNTEXsubsubsubsectionupperifneeded} + + % impressao do numero do capitulo + \renewcommand{\chapternamenum}{} + + % impressao do nome do capitulo + \renewcommand{\printchaptername}{% + \chaptitlefont + \ifthenelse{\boolean{abntex@apendiceousecao}}{\appendixname}{}% + } + + % impressao do titulo do capitulo + \def\printchaptertitle##1{% + \chaptitlefont% + \ifthenelse{\boolean{abntex@innonumchapter}}{\centering\ABNTEXchapterupperifneeded{##1}}{% + \ifthenelse{\boolean{abntex@apendiceousecao}}{% + \centering% + \settowidth{\chapternamenumlength}{\printchaptername\printchapternum\afterchapternum}% + \ABNTEXchapterupperifneeded{##1}% + }{% + \settowidth{\chapternamenumlength}{\printchaptername\printchapternum\afterchapternum}% + \parbox[t]{\columnwidth-\chapternamenumlength}{\ABNTEXchapterupperifneeded{##1}}}% + } + } + + % impressao do numero do capitulo + \renewcommand{\printchapternum}{% + \tocprintchapter + \setboolean{abntex@innonumchapter}{false} + \chapnumfont% + \space\thechapter\space% + \ifthenelse{\boolean{abntex@apendiceousecao}}{% + \tocinnonumchapter + \ABNTEXcaptiondelim% + }{} % else + } + \renewcommand{\afterchapternum}{} + + % impressao do capitulo nao numerado + \renewcommand\printchapternonum{% + \tocprintchapternonum + \setboolean{abntex@innonumchapter}{true}% + } +} +\chapterstyle{abnt} +% --- + +% ----- +% Declaracoes de cabecalhos +% ----- +% Cabecalho padrao +\makepagestyle{abntheadings} +\makeevenhead{abntheadings}{\ABNTEXfontereduzida\thepage}{}{\ABNTEXfontereduzida\textit\leftmark} +\makeoddhead{abntheadings}{\ABNTEXfontereduzida\textit\rightmark}{}{\ABNTEXfontereduzida\thepage} +\makeheadrule{abntheadings}{\textwidth}{\normalrulethickness} + +% Cabecalho do inicio do capitulo +\makepagestyle{abntchapfirst} +\makeoddhead{abntchapfirst}{}{}{\ABNTEXfontereduzida\thepage} +% --- + +% --- +% Configura layout para elementos pre-textuais +\newcommand{\pretextual}{% + \aliaspagestyle{chapter}{empty}% customizing chapter pagestyle + \pagestyle{empty} + \aliaspagestyle{cleared}{empty} + \aliaspagestyle{part}{empty} +} +\renewcommand{\frontmatter}{\pretextual} + +% por default, inicializa o documento com elementos \pretextuais +\AtBeginDocument{\pretextual} +% --- + +% --- +% Configura layout para elementos textuais +\newcommand{\textual}{% + \ifthenelse{\equal{\ABNTEXisarticle}{true}}{% + \pagestyle{plain}% + }{%else + \pagestyle{abntheadings}% + \aliaspagestyle{chapter}{abntchapfirst}% customizing chapter pagestyle + } + \nouppercaseheads% + \bookmarksetup{startatroot}% +} +\renewcommand{\mainmatter}{\textual} +% --- + +% --- +% Configura layout para elementos pos-textuais +\newcommand{\postextual}{\phantompart} +\renewcommand{\backmatter}{\postextual} +% ----- + +% ------------------------------------------------------------------------ +% ------------------------------------------------------------------------ +% Comandos de dados para CAPA e FOLHA DE ROSTO +% ------------------------------------------------------------------------ +% ------------------------------------------------------------------------ + +% Comandos de dados - titulo do documento +\newcommand{\titulo}[1]{\title{#1}} +\newcommand{\imprimirtitulo}{\thetitle} + +% Comandos de dados - titulo do documento +\newcommand{\tituloestrangeiro}[1]{\providecommand{\theforeigntitle}{#1}} +\newcommand{\imprimirtituloestrangeiro}{\theforeigntitle} + + +% Comandos de dados - autor (use \and para multiplos autores) +\newcommand{\autor}[1]{\author{#1}} +\newcommand{\imprimirautor}{\theauthor} + +% Comandos de dados - data +\let\olddate\date +\renewcommand{\date}[1]{\AtBeginDocument{\olddate{#1}}} +\newcommand{\data}[1]{\date{#1}} +\newcommand{\imprimirdata}{\thedate} + +% Comandos de dados - instituicao +\providecommand{\imprimirinstituicao}{} +\newcommand{\instituicao}[1]{\renewcommand{\imprimirinstituicao}{#1}} + +% Comandos de dados - local +\providecommand{\imprimirlocal}{} +\newcommand{\local}[1]{\renewcommand{\imprimirlocal}{#1}} + +% Comandos de dados - preambulo +\providecommand{\imprimirpreambulo}{} +\newcommand{\preambulo}[1]{\renewcommand{\imprimirpreambulo}{#1}} + +% Comandos de dados - orientador +\providecommand{\imprimirorientadorRotulo}{} +\providecommand{\imprimirorientador}{} +\newcommand{\orientador}[2][\orientadorname]% + {\renewcommand{\imprimirorientadorRotulo}{#1}% + \renewcommand{\imprimirorientador}{#2}} + +% Comandos de dados - coorientador +\providecommand{\imprimircoorientadorRotulo}{} +\providecommand{\imprimircoorientador}{} +\newcommand{\coorientador}[2][\coorientadorname]% + {\renewcommand{\imprimircoorientadorRotulo}{#1}% + \renewcommand{\imprimircoorientador}{#2}} + +% Comandos de dados - tipo de trabalho +\providecommand{\imprimirtipotrabalho}{} +\newcommand{\tipotrabalho}[1]{\renewcommand{\imprimirtipotrabalho}{#1}} + +% ------------------------------------------------------------------------ +% ------------------------------------------------------------------------ +% Comandos e ambientes de editoracao PRE-TEXTUAIS +% ------------------------------------------------------------------------ +% ------------------------------------------------------------------------ + +% --- +% Ambiente para definicao da Capa +\newenvironment{capa}{\begin{titlingpage}}{\end{titlingpage}\cleardoublepage} +% --- + +% --- +% Titulos em lingua estrangeira para artigos: ABNT NBR 6022:2018 +\ifthenelse{\equal{\ABNTEXisarticle}{true}}{% +\renewcommand{\maketitlehookb}{\LARGE\center\textit{\theforeigntitle}} +}{} +% --- + +% --- +% Ficha catalografica (Dados internacionais de +% catalogação-na-publicacao) +\newenvironment{fichacatalografica}{% + \thispagestyle{empty} + \begin{SingleSpacing} + \ABNTEXfontereduzida +}{% + \end{SingleSpacing}% +}% +% --- + +% --- +% Errata +\newenvironment{errata}[1][\errataname]{% + \pretextualchapter{#1} + }{\PRIVATEclearpageifneeded} +% --- + +% --- +% Folha de aprovacao - NBR 14724/2011 - 4.2.1.3 +\newenvironment{folhadeaprovacao}[1][\folhadeaprovacaoname]{% + \clearpage% + \PRIVATEbookmarkthis{#1}% + \begin{Spacing}{1.0} +}{\end{Spacing}\PRIVATEclearpageifneeded} +% --- + +% --- +% Dedicatoria +\newenvironment{dedicatoria}[1][]{% + \ifthenelse{\equal{#1}{}}{% + \PRIVATEbookmarkthis{\dedicatorianame} + }{\pretextualchapter{#1}} + }{\PRIVATEclearpageifneeded} +% --- + +% --- +% Agradecimentos +\newenvironment{agradecimentos}[1][\agradecimentosname]{% + \pretextualchapter{#1} + }{\PRIVATEclearpageifneeded} +% --- + +% --- +% Epigrafe +\newenvironment{epigrafe}[1][]{% + \ifthenelse{\equal{#1}{}}{% + \PRIVATEbookmarkthis{\epigraphname} + }{\pretextualchapter{#1}} + }{\PRIVATEclearpageifneeded} +% --- + +% --- +% Resumo e abstracts em diferentes idiomas - NBR 14724/2011 + +% altera as margens padrões do memoir para abstract caso nao seja article +\ifthenelse{\equal{\ABNTEXisarticle}{true}}{% + % em artigos, margens e fontes são as mesmas de memoir + }{ % else + % Ajusta as margens para serem a mesma do documento + \setlength\absleftindent{0cm} + \setlength\absrightindent{0cm} + % Garante que a fonte do texto do abstract será a mesma do documento, pois + % na classe memoir está \small + \renewcommand{\abstracttextfont}{\normalfont\normalsize} + } + +% A norma não diz nada sobre identação e separação entre parágrafos no abstract, +% porém o uso mostra que muitos abstracts são montados sem identação. +\AtBeginDocument{% + \setlength{\absparindent}{0pt} +} + +\newenvironment{resumo}[1][\resumoname]{% + \PRIVATEbookmarkthis{#1} + \renewcommand{\abstractnamefont}{\chaptitlefont} + \renewcommand{\abstractname}{\ABNTEXchapterupperifneeded{#1}} + \begin{abstract} + }{\end{abstract}\PRIVATEclearpageifneeded} + +\newenvironment{resumoumacoluna}[1][\resumoname]{% + \PRIVATEbookmarkthis{#1} + \renewcommand{\abstractnamefont}{\chaptitlefont} + \renewcommand{\abstractname}{\ABNTEXchapterupperifneeded{#1}} + \begin{onecolabstract} +}{\end{onecolabstract}\PRIVATEclearpageifneeded} +% --- + +% --- +% Lista de abreviaturas e siglas +\newenvironment{siglas}{% + \pretextualchapter{\listadesiglasname} + \begin{symbols} +}{% + \end{symbols} + \cleardoublepage +} +% --- + +% --- +% Lista de simbolos +\newenvironment{simbolos}{% + \pretextualchapter{\listadesimbolosname} + \begin{symbols} +}{% + \end{symbols} + \cleardoublepage +} +% --- + + + +% ------------------------------------------------------------------------ +% ------------------------------------------------------------------------ +% Comandos e ambientes de editoracao APENDICES e ANEXOS +% ------------------------------------------------------------------------ +% ------------------------------------------------------------------------ + +% --- +% Definicoes compartilhadas entre Apendices e Anexos +% --- +\makeatletter +\newcommand\@switch[1]{ \@writefile{toc}{\renewcommand*{\cftappendixname}{#1 \space}} } +\newcommand{\switchchapname}[1]{ \protected@write \@auxout {}{\string\@switch{#1} }} +\makeatother + +\newcommand{\PRIVATEapendiceconfig}[2]{% + \setboolean{abntex@apendiceousecao}{true}% + \renewcommand{\appendixname}{#1} + \ifthenelse{\boolean{ABNTEXsumario-abnt-6027-2012}}{ + \renewcommand{\appendixtocname}{\uppercase{#2}} + }{% + \renewcommand{\appendixtocname}{#2}} + \renewcommand{\appendixpagename}{#2} + \switchchapname{#1}% Corrected from \switchapname -> \switchchapname + \renewcommand*{\cftappendixname}{#1 \space} +} +% --- + +% --- +% Apendices - comando +\newcommand{\apendices}{% + \PRIVATEapendiceconfig{\apendicename}{\apendicesname} + \appendix +} +% Apendices - ambiente +\newenvironment{apendicesenv}{% + \PRIVATEapendiceconfig{\apendicename}{\apendicesname} + \begin{appendix} +}{ + \end{appendix} + \setboolean{abntex@apendiceousecao}{false} + \bookmarksetup{startatroot} +} +% --- + +% --- +% Anexos - comando +\newcommand{\anexos}{% + \cftinserthook{toc}{AAA} + + \PRIVATEapendiceconfig{\anexoname}{\anexosname} + \appendix + \renewcommand\theHchapter{anexochapback.\arabic{chapter}} +} +% Anexos - ambiente +\newenvironment{anexosenv}{% + \cftinserthook{toc}{AAA} + + \PRIVATEapendiceconfig{\anexoname}{\anexosname} + \begin{appendix} + \renewcommand\theHchapter{anexochapback.\arabic{chapter}} +}{ + \end{appendix} + \setboolean{abntex@apendiceousecao}{false} + \bookmarksetup{startatroot} +} +% --- + +% --- +% Imprime uma pagina de divisao no estilo parte +\newcommand{\partpage}{% + \cleardoublepage + \phantomsection + \addcontentsline{toc}{part}{\appendixtocname}% + \appendixpage* +} + +% atalhos para \partpage ou \appendixpage* +\makeatletter +\newcommand{\partapendices}{% +\tocpartapendices% +\@ifstar{\appendixpage*}{\partpage}} + +\newcommand{\partanexos}{% +\tocpartanexos% +\@ifstar{\appendixpage*}{\partpage}} +\makeatother +% --- + + +% ------------------------------------------------------------------------ +% ------------------------------------------------------------------------ +% Comandos e ambientes de editoracao CITACAO, ALINEA, INCISO, ASSINATURA +% ------------------------------------------------------------------------ +% ------------------------------------------------------------------------ + +% --- +% Citacao direta com mais de 3 linhas - ABNT NBR 10520/2002 - 5.3 +\newlength{\ABNTEXcitacaorecuo}% recuo de 4 cm da margem esquerda +\ifthenelse{\equal{\ABNTEXistwocolumn}{true}}{% + \setlength{\ABNTEXcitacaorecuo}{1.8cm} +}{% else + \setlength{\ABNTEXcitacaorecuo}{4cm} +} +\newenvironment*{citacao}[1][default]{% + \list{}% + \ABNTEXfontereduzida% + \addtolength{\leftskip}{\ABNTEXcitacaorecuo}% + \item[]% + \begin{SingleSpace}% + \ifthenelse{\not\equal{#1}{default}}{\itshape\selectlanguage{#1}}{}% + }{% + \end{SingleSpace}% + \endlist}% +% --- + +% --- +% Ambiente para alineas e e subalineas (incisos) +% ABNT NBR 6024/2012 - 4.2 e 4.3 +\newlist{alineas}{enumerate}{2} +\setlist[alineas,1]{label={\alph*)},topsep=0pt,itemsep=0pt,leftmargin=\parindent+\labelwidth-\labelsep}% +\setlist[alineas,2]{label={--},topsep=0pt,itemsep=0pt,leftmargin=*} +\newlist{subalineas}{enumerate}{1} +\setlist[subalineas,1]{label={--},topsep=0pt,itemsep=0pt,leftmargin=*}% +\newlist{incisos}{enumerate}{1} +\setlist[incisos,1]{label={--},topsep=0pt,itemsep=0pt,leftmargin=*}% +% --- + +% --- +% Comando \assinatura for signature + % width of the line and text under the line +\newlength{\ABNTEXsignwidth} +\setlength{\ABNTEXsignwidth}{8cm} + % thickness of the line +\newlength{\ABNTEXsignthickness} +\setlength{\ABNTEXsignthickness}{1pt} + % ammount of space left between previous text and th signature line +\newlength{\ABNTEXsignskip} +\setlength{\ABNTEXsignskip}{0.7cm} + % \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. +\makeatletter +\newcommand{\assinatura}{\@ifstar{\ABNTEXsign}{\ABNTEXcsign}} +\makeatother + % assinatura com estrela +\newcommand{\ABNTEXsign}[1]{% + \parbox[t]{\ABNTEXsignwidth}{\SingleSpacing\vspace*{\ABNTEXsignskip}\centering% + \rule{\ABNTEXsignwidth}{\ABNTEXsignthickness}\\% + \nopagebreak #1\par}% +} + % assinatura sem estrela +\newcommand{\ABNTEXcsign}[1]% + {\begingroup\par\centering\ABNTEXsign{#1}\par\endgroup} +% --- + +% ------------------------------------------------------------------------ +% ------------------------------------------------------------------------ +% IMPRESSOES PADROES DE CAPA E FOLHA DE ROSTO +% ------------------------------------------------------------------------ +% ------------------------------------------------------------------------ + +% --- +% Impressão da Capa +\newcommand{\imprimircapa}{% + \begin{capa}% + \center + \ABNTEXchapterfont\large\imprimirautor + + \vfill + \begin{center} + \ABNTEXchapterfont\bfseries\LARGE\imprimirtitulo + \end{center} + \vfill + + \large\imprimirlocal + + \large\imprimirdata + + \vspace*{1cm} + \end{capa} +} +% --- + + +% --- +% Folha de rosto +% usar \imprimirfolhaderosto* casodeseje imprimir algo no verso da +% página no caso de estar no modo twoside. Util para imprimir a Ficha +% Bibliografica. Porem, se estiver no modo oneside, a versao sem estrela +% é identica. +\newenvironment{folhaderosto}[1][\folhaderostoname]{\clearpage\PRIVATEbookmarkthis{#1}}{\cleardoublepage} +\newenvironment{folhaderosto*}[1][\folhaderostoname]{\clearpage\PRIVATEbookmarkthis{#1}}{\newpage}% + +% --- +% Conteudo padrao da Folha de Rosto +\makeatletter +\newcommand{\folhaderostocontent}{ + \begin{center} + + %\vspace*{1cm} + {\ABNTEXchapterfont\large\imprimirautor} + + \vspace*{\fill}\vspace*{\fill} + \begin{center} + \ABNTEXchapterfont\bfseries\Large\imprimirtitulo + \end{center} + \vspace*{\fill} + + \abntex@ifnotempty{\imprimirpreambulo}{% + \hspace{.45\textwidth} + \begin{minipage}{.5\textwidth} + \SingleSpacing + \imprimirpreambulo + \end{minipage}% + \vspace*{\fill} + }% + + {\abntex@ifnotempty{\imprimirinstituicao}{\imprimirinstituicao\vspace*{\fill}}} + + {\large\imprimirorientadorRotulo~\imprimirorientador\par} + \abntex@ifnotempty{\imprimircoorientador}{% + {\large\imprimircoorientadorRotulo~\imprimircoorientador}% + }% + \vspace*{\fill} + + {\large\imprimirlocal} + \par + {\large\imprimirdata} + \vspace*{1cm} + + \end{center} +} +\makeatother + +\newcommand{\imprimirfolhaderostostar}[1]{% + \begin{folhaderosto*}{#1} + \folhaderostocontent + \end{folhaderosto*}} + +\newcommand{\imprimirfolhaderostonostar}[1]{% + \begin{folhaderosto}{#1} + \folhaderostocontent + \end{folhaderosto}} + +\makeatletter +\newcommand{\imprimirfolhaderosto}[1][\folhaderostoname]{% + \@ifstar + \imprimirfolhaderostostar + \imprimirfolhaderostonostar +} +\makeatother +% --- |