texlive[65705] Master/texmf-dist: abntexto (1feb23)

commits+karl at tug.org commits+karl at tug.org
Wed Feb 1 22:04:40 CET 2023


Revision: 65705
          http://tug.org/svn/texlive?view=revision&revision=65705
Author:   karl
Date:     2023-02-01 22:04:40 +0100 (Wed, 01 Feb 2023)
Log Message:
-----------
abntexto (1feb23)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/abntexto/abntexto-manual.pdf
    trunk/Master/texmf-dist/doc/latex/abntexto/abntexto.bib
    trunk/Master/texmf-dist/tex/latex/abntexto/abntexto.cls

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/abntexto/README
    trunk/Master/texmf-dist/doc/latex/abntexto/abntexto.tex

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex/abntexto/README.txt
    trunk/Master/texmf-dist/doc/latex/abntexto/abntexto-manual.tex

Added: trunk/Master/texmf-dist/doc/latex/abntexto/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/abntexto/README	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/abntexto/README	2023-02-01 21:04:40 UTC (rev 65705)
@@ -0,0 +1,8 @@
+Public Domain Software
+2023-01-31
+2.0.0-alpha
+Elayson
+abntexto.classe at gmail.com 
+
+The abntexto is a LaTeX class for the elaboration of academic works according
+to the guidelines of the Associação Brasileira de Normas Técnicas (ABNT).
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/abntexto/README
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/doc/latex/abntexto/README.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/abntexto/README.txt	2023-02-01 12:36:52 UTC (rev 65704)
+++ trunk/Master/texmf-dist/doc/latex/abntexto/README.txt	2023-02-01 21:04:40 UTC (rev 65705)
@@ -1,8 +0,0 @@
-Public Domain Software
-2022-10-12
-1.2.1-alpha
-Elayson
-abntexto.classe at gmail.com 
-
-The abntexto is a LaTeX class for the elaboration of academic works according
-to the guidelines of the Associação Brasileira de Normas Técnicas (ABNT).
\ No newline at end of file

Modified: trunk/Master/texmf-dist/doc/latex/abntexto/abntexto-manual.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/doc/latex/abntexto/abntexto-manual.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/abntexto/abntexto-manual.tex	2023-02-01 12:36:52 UTC (rev 65704)
+++ trunk/Master/texmf-dist/doc/latex/abntexto/abntexto-manual.tex	2023-02-01 21:04:40 UTC (rev 65705)
@@ -1,353 +0,0 @@
-\documentclass{abntexto}
-
-\makeatletter
-
-\usepackage[brazil]{babel}
-\usepackage[T1]{fontenc}
-\usepackage{newtxtext}
-\usepackage{newtxmath}
-\usepackage{lipsum} \def\lip{\lipsum[1][1-2]}
-\usepackage{graphicx}
-\usepackage[cmyk]{xcolor}
-\usepackage[style=abnt]{biblatex} \addbibresource{abntexto.bib}
-\usepackage[colorlinks]{hyperref}
-%\let\href=\relax \newdimen\bibitemsep \def\textcite#1{{\bfseries#1}}
-
-% MARKUP
-% ================================================
-
-\def\ttnoligs{\ttfamily\@noligs}
-
-\def\cs#1{{\ttnoligs \string#1}}
-\def\meta#1{{\ttnoligs <#1>}} % ⟨⟩
-\def\cc#1{{\ttnoligs \{\meta{#1}\}}}
-\def\kk#1{{\ttnoligs [\meta{#1}]}}
-
-\def\arg{\cc{arg}}
-\def\opt{\kk{opt}}
-\def\ccval#1{{\ttnoligs \{#1\}}}
-\def\kkval#1{{\ttnoligs [#1]}}
-\def\pkg#1{{\ttnoligs #1}}
-
-% VERBATIM
-% ================================================
-
-\def\adef#1{\catcode`#1=13 \begingroup \lccode`\~=`#1\lowercase{\endgroup\def~}}
-\def\dodef#1{\catcode`#1=12 }
-\def\verbcatcodes{\let\do=\dodef \dospecials \catcode`\|=0 }
-
-{\catcode`\^^M=13 
-	\gdef\verbpercent#1^^M{{\color{graycomment}\itshape\@percentchar#1^^M}}
-}
-
-\long\def\codeon{\par\begingroup \verbcatcodes
-	\adef{\^^I}{\ \ \ }%
-	\adef{\^^M}{\par\leavevmode}%
-	\adef{ }{\ }%
-	\adef{\%}{\verbpercent}%
-	\startverb
-}
-{\catcode`\ =13 \catcode`\^^M=13 \catcode`\|=0 \catcode`\\=12 
-	|gdef|startverb^^M#1^^M\codeoff{|verbbox{#1}|par|endgroup |verbreset}
-}
-\def\verbbox#1{\def\tnba at placewidth{\hsize \advance\hsize-3cm}%
-	\vskip\placeabovespace
-	\parindent=0pt 
-	\ifx\tnba at savedplace\empty\else\tnba at makelegend\fi
-	\nobreak\nointerlineskip\vskip10pt
-	{\verbfont{#1}}%
-	\nobreak\nointerlineskip\vskip8pt
-	\ifx\tnba at savedsrc\empty\else\tnba at makesrc\fi
-	\vskip\placebelowspace
-}
-\def\verbreset{%
-	\let\tnba at savedplace=\empty
-	\let\tnba at savedlegend=\empty
-	\let\tnba at savedsrc=\empty
-	\let\@currentlabel=\empty
-}
-\def\verbfont{\raggedright\leftskip=6pt\singlesp\small\ttnoligs\leftframed}
-\long\def\leftframed#1{\setbox0=\vtop{#1}%
-	\hbox{{\color{graybar}\kern1.5cm\vrule width1pt}\box0}%
-}
-
-% MISC
-% ================================================
-
-\sizeselectordef\large{14.4pt}{17pt}
-\sizeselectordef\Large{20.74pt}{25pt}
-\sizeselectordef\LARGE{25pt}{30pt}
-
-\definecolor{graybar}{gray}{0.75}
-\definecolor{graycomment}{gray}{.2}
-
-\legendplacedef{code}{Código}{Lista de códigos}{cód.\,#1}{loc}
-\def\loclabelwidth{10.6ex}
-\def\me{o autor.}
-
-\tocilowercase
-\sectionlowercase
-
-\clubpenalty=10000 
-\widowpenalty=10000 
-
-\let\cite=\textcite
-\def\bibfont{\singlesp}
-\bibitemsep=18pt
-
-\def\corrprinton{\begingroup \def\section##1##2{\heading{##2}}}
-\def\corrprintoff{\par\endgroup}
-
-\makeatother
-
-
-
-\begin{document}
-
-\leavevmode\vskip1.9in
-
-{\centering \LARGE\sffamily\bfseries
-	abntexto\\[0.4em] \Large\itshape\mdseries
-	Classe para {\upshape\LaTeX}\\[2em] \normalfont\large
-	Elayson\\[1ex]
-	\href{mailto:abntexto.classe at gmail.com}{abntexto.classe at gmail.com}\\[2.5ex]
-	\today\par}
-
-\vskip3in
-
-{\centering \large\ttfamily 1.2.1-alpha\par}
-
-\newpage
-
-\maketoc
-
-\textual
-
-\section{Apresentação}
-
-O \pkg{abntexto} é uma classe do \LaTeX\ criada para facilitar a utilização das normas da Associação Brasileira de Normas Técnicas (ABNT) em trabalhos acadêmicos (monografias, dissertações, teses).
-
-Este \emph{não} é um manual sobre \LaTeX\ (ou \TeX, a ferramenta que o constitui) nem tampouco uma descrição detalhada sobre as normas ABNT. Para aprender sobre \LaTeX\ leia \cite{viaexemplos} ou \cite{latex2eunnoficial}, disponível também em francês. Além disso, também se pode ler \cite{texbytopic} para aprender sobre o sistema \TeX\footnote{Note que os livros referenciados não foram realmente citados e isso não é aceito na Norma, no entanto este não é um trabalho acadêmico real, mas um manual.}.
-
-Já existe uma classe para aplicação das normas ABNT cujo nome é \pkg{abntex2}. Mas, diferente desta, o \pkg{abntexto} não depende  do \pkg{memoir}, uma classe de código-fonte e manual extensos e que implementa funções as quais, em sua maioria, não são pertinentes a um documento que use as diretrizes da ABNT.
-
-As normas ABNT as quais o \pkg{abntexto} se propõe a seguir são aquelas em vigor até o momento da criação deste manual.
-
-\section{Chamando a classe}
-
-Digite as linhas em \ref{vb:início} e use \pkg{abntexto}.
-
-\legend{code}{Início} \src\me
-\label{vb:início}
-\codeon
-\documentclass{abntexto}
-
-\usepackage[brazil]{babel} % para obter os padrões de hifenização corretos
-\usepackage[T1]{fontenc}
-\usepackage{newtxtext} % fontes New TX, semelhantes a Times
-\usepackage{newtxmath}
-
-\begin{document}
-	Texto
-\end{document}
-\codeoff
-
-\section{Fonte tipográfica}
-
-O tamanho da fonte é 12\,pt de imediato e pode ser configurado com o comando \cs\setfontsize\cc{size} sendo que 12\,pt é a única opção disponível. Mas, se você deseja outro tamanho de fonte, crie-o usando \cs\fontsizedef\cc{size}\cc{defs}. Além disso, com os seletores de tamanho \cs\normalsize\ e \cs\small\ que configuram 12\,pt e 10\,pt, nessa ordem, é possível mudar o tamanho da fonte no corpo do documento.
-
-O espaçamento é de um e meio e pode ser alterado para dois com \cs\spacing\ccval{2}, por exemplo. Os atalhos \cs\singlesp, \cs\onehalfsp\ e \cs\doublesp\ estão disponíveis. Note que o espaçamento simples não tem o mesmo valor que o espaçamento um, portanto, \cs\singlesp\ é diferente de \cs\spacing\ccval{1}! Os atalhos \cs\onehalfsp\ e \cs\doublesp\ tem o mesmo significado de \cs\spacing\ccval{1.5} e \cs\spacing\ccval{2}.
-
-\section{\emph{Layout}}
-
-A folha é A4 por padrão e as margens esquerda e direita são de 3\,cm, 2\,cm para páginas ímpares e de 2\,cm, 3\,cm para páginas pares, respectivamente. Além disso, as margens superior e inferior têm, nessa ordem, 3\,cm, 2\,cm para todo o documento. Todas essas medidas podem ser alteradas com a macro \cs\paper\ que deve ser usada assim: \cs\paper\ccval{left=0cm, right=0cm, top=0cm, botttom=0cm}.
-
-Além das chaves anteriores também existe \cs{twoside} que é booleana, ou seja, aceita os valores \cs{true} ou \cs{false} e serve para ativar o modo de impressão em duas folhas aonde as medidas das margens horizontais se invertem nas páginas pares. Ao não informar um valor para \cs{twoside} subentende-se que seja \cs{true}, portanto \cs\paper\ccval{twoside} equivale a \cs\paper\ccval{twoside=true} e esse princípio também se aplica a outras chaves booleanas.
-
-\section{Sumário}
-
-Os comandos que mudam a fonte das entradas no ToC (Table of Contents, em inglês) são \cs\tocifont, \cs\tociifont, \dots, \cs\tocvfont\ (ver \ref{vb:contents}).
-
-\legend{code}{Aparência do sumário} \src\me
-\label{vb:contents}
-\codeon
-\documentclass{abntexto}
-
-\usepackage{color}
-
-\tocifont{\color{red}\itshape}
-\tociifont{\color{blue}\bfseries}
-
-\begin{document}
-	\maketoc
-
-	\section{Título}
-	\subsection{Título}
-\end{document}
-\codeoff
-
-\section{Secionamento}
-
-A personalização das macros de seção (\cs\section, \cs\subsection\ etc.) é análoga a personalização do sumário e deve ser feita com \cs\sectionfont, \cs\subsectionfont, etc. como exemplificado em \ref{vb:sec}.
-
-Também há como alterar o espaço vertical acima e abaixo das seções usando \cs\sectionspaces, \cs\subsectionspaces, etc. Por exemplo, \cs\sectionspaces\ccval{2ex}\ccval{1cm} insere um espaço de 2\,ex acima de \cs\section\ e de 1\,cm abaixo.
-
-\legend{code}{Aparência das seções} \src\me
-\label{vb:sec}
-\codeon
-\documentclass{abntexto}
-
-\usepackage{color}
-
-\sectionfont{\color{blue}\scshape}
-\subsectionfont{\color{red}\slshape}
-\subsubsectionfont{\color{yellow}\sffamily}
-
-\begin{document}
-	\maketoc
-
-	\section{Texto}
-	\subsection{Texto}
-	\subsubsection{Texto}
-\end{document}
-\codeoff
-
-\section{Alíneas}
-
-Use o ambiente \cs{topics} para criar alíneas. Ele dispõe de dois níveis sendo que o segundo usa um travessão como marcador conforme o exemplo em \ref{vb:topics}. Naturalmente o uso de \cs\label\ é permitido.
-
-\legend{code}{Alíneas} \src\me
-\label{vb:topics}
-\codeon
-\begin{topics}
-	\item \label{al:x} 1
-		\begin{topics}
-			\item x
-			\item y
-			\item z
-		\end{topics}
-	\item \label{al:y} 2
-	\item 3
-\end{topics}
-\codeoff
-
-\section{Áreas de legenda}
-
-Use \cs\place\ para inserir áreas de legenda como mostrado em \ref{vb:place}. Mas existem condições: \cs\place\ deve vir por último e \cs\label\ precisa estar depois de \cs\legend. Além disso, existe a possibilidade de alterar o espaço vertical acima e abaixo de uma área de legenda com \cs\placespaces\cc{aboveskip}\cc{belowskip}.
-
-\legend{code}{Áreas de legenda} \src\me
-\label{vb:place}
-\codeon
-\usepackage{graphicx}
-
-\begin{document}
-	\legend{figure}{Um título}
-	\src{\texttt{www.site.com.br}. Acesso em 01 jan. 2020.}
-	\label{fig:teste}
-	\place{\includegraphics[width=0.4\linewidth]{example-image}}
-
-	Ver \ref{fig:teste}.
-\end{document}
-\codeoff
-
-O leitor pode querer definir uma nova área de legenda usando, por exemplo, a instrução: \cs\legendplacedef\ccval{diagram}\ccval{Diagrama}\ccval{Lista de diagramas}\ccval{diag.\cs\,\cs#1}\ccval{lod} que vai criar o comando \cs\makelod\ para escrever no documento as entradas do arquivo auxiliar .lod.
-
-%*
-
-\section{Formatação de {\ttfamily\protect\textbackslash cite} e referências}
-
-Até o momento o \pkg{abntexto} não possui macros para formatação de \cs\cite\ e referências. Utilize \cs{\usepackage[style=abnt]\{biblatex\}}.
-
-\section{Citações}
-
-Para inserir aspas em citações diretas use \cs\qt\ccval{texto}. Mas, se tratando de citações diretas com mais de três linhas, alterne para \cs\quote\ccval{texto \cs\cite\cc{key}}.
-
-\newpage
-
-\corrprinton
-%\printbibliography
-\corrprintoff
-
-\newpage
-\appendix
-
-\section{\emph{Feedback}}
-Sugestões, relatos de \emph{bugs} e doações são bem-vindas.
-
-\section{Código-fonte}
-
-\makeatletter
-\newcount\seccount \def\thesec{\the\seccount}
-\def\extlabelwidth{4ex}
-\def\extlabelbox#1{\hbox to\extlabelwidth{#1~---~\hfil}}
-\def\l at subsection#1#2{\smartaboveskip{\penalty351}{\vskip1em plus1pt}%
-	\begingroup
-		\usetocifont \nobreak
-		\extlineshape \relax
-		\hskip-\leftskip \maybeuctoc{#1}\nobreak\hfil\nobreak
-		\hbox to1.55em{\hss #2\kern-1pt\kern1pt}\par
-	\endgroup
-}
-\def\subsection#1{\par \smartaboveskip{\penalty351}{\vskip\subsectionabove}\noindent
-	\advancecount\seccount
-	\setbox0=\hbox{\usesubsectionfont \thesec\quad}%
-	{\usesubsectionfont \hangindent=\wd0 \box0 #1\tnba at nbpar}%
-	\nobreak \smartbelowskip{\vskip\subsectionbelow}%
-}
-\makeatother 
-
-% SOURCE MACROS
-% ================================================
-
-\makeatletter
-
-\definecolor{bg}{cmyk}{0,0.06,0,0}
-\definecolor{comment}{cmyk}{0.9,0,0,0.1}
-
-\def\sec#1\par{\subsection{#1}}
-
-\newdimen\hhkern \hhkern=12pt 
-\newdimen\vvkern \vvkern=12pt 
-
-\def\hh{\kern\hhkern}
-\def\vv{\kern\vvkern}
-
-{\catcode`\^^M=13 
-	\gdef\verbpercent#1^^M{{\bfseries\color{comment}\@percentchar#1^^M}}
-}
-
-\def\srccatcodes{\catcode`\!=14 \catcode`\%=9 \catcode`\|=0 }
-\def\codecatcodes{\let\do=\dodef \dospecials}
-
-\long\def\bcode{\par\begingroup \codecatcodes
-	\adef{\^^I}{\ \ \ }%
-	\adef{\^^M}{\par\leavevmode}%
-	\adef{ }{\ }%
-	\adef{\%}{\verbpercent}%
-%	\def\par##1{\endgraf\ifx##1\par\leavevmode\fi##1}\obeylines
-	\startcode
-}
-{\catcode`\%=13 \catcode`\ =13 \catcode`\^^M=13 \catcode`\|=0 \catcode`\\=12 
-	|long|gdef|startcode #1% |ecode{|codefont{#1}|par|endgroup}
-}
-
-\def\codefont{\raggedright\small\ttnoligs\bgbox}
-
-\long\def\bgbox#1{\setbox0=\vbox{\advance\hsize-24pt \vv#1\vv}%
-	\ifdim\ht0>\dimexpr \pagegoal - \pagetotal \relax
-		\setbox2=\vsplit0 to\dimexpr \pagegoal - \pagetotal -24pt \relax
-	\fi
-	\vskip8pt minus2pt 
-	\drawbg2\par \drawbg0%
-	\vskip8pt minus2pt 
-}
-\def\drawbg#1{\leavevmode
-	\rlap{{\color{bg} \vrule width\dimexpr\wd#1+24pt\relax height\ht#1 depth\dp#1}}%
-	\hbox{\hh\box#1\hh}%
-}
-
-\def\inputsrc#1{\begingroup \parskip=0pt \srccatcodes \input #1\endgroup}
-
-\inputsrc{abntexto.cls}
-
-\end{document}

Modified: trunk/Master/texmf-dist/doc/latex/abntexto/abntexto.bib
===================================================================
--- trunk/Master/texmf-dist/doc/latex/abntexto/abntexto.bib	2023-02-01 12:36:52 UTC (rev 65704)
+++ trunk/Master/texmf-dist/doc/latex/abntexto/abntexto.bib	2023-02-01 21:04:40 UTC (rev 65705)
@@ -1,24 +1,24 @@
 @book{texbytopic,
-	author = {Viktor Eijkhout},
-	title = {\TeX\ by topic: a \TeX nician’s reference},
-	location = {England},
+	author    = {Viktor Eijkhout},
+	title     = {\TeX\ by topic: a \TeX nician’s reference},
+	location  = {England},
 	publisher = {Addison-Wesley},
-	date = {1992},
-	url = {https://www.ctan.org/pkg/texbytopic},
-	urldate = {2022-09-28}
+	date      = {1992},
+	url       = {https://www.ctan.org/pkg/texbytopic},
+	urldate   = {2022-09-28}
 }
 @book{viaexemplos,
-	author = {Sadao Massago},
-	title = {\LaTeXe\ Via Exemplos},
+	author   = {Sadao Massago},
+	title    = {\LaTeXe\ Via Exemplos},
 	location = {São Paulo},
-	date = {2022-05-17},
-	url = {https://www.ctan.org/pkg/latex-via-exemplos},
-	urldate = {2022-09-28}
+	date     = {2022-05-17},
+	url      = {https://www.ctan.org/pkg/latex-via-exemplos},
+	urldate  = {2022-09-28}
 }
 @book{latex2eunnoficial,
-	author = {Torsten Martinsen and Stephen Gilmore and Karl Berry},
-	title = {\LaTeXe: An unofficial reference manual},
-	date = {2022-05},
-	url = {https://www.ctan.org/pkg/latex2e-help-texinfo},
+	author  = {Torsten Martinsen and Stephen Gilmore and Karl Berry},
+	title   = {\LaTeXe: An unofficial reference manual},
+	date    = {2022-05},
+	url     = {https://www.ctan.org/pkg/latex2e-help-texinfo},
 	urldate = {2022-09-28}
 }

Added: trunk/Master/texmf-dist/doc/latex/abntexto/abntexto.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/abntexto/abntexto.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/abntexto/abntexto.tex	2023-02-01 21:04:40 UTC (rev 65705)
@@ -0,0 +1,449 @@
+% !TeX TS-program = lualatex
+
+\documentclass{abntexto}
+
+\makeatletter
+
+\def\erase{}\def\enderase{}
+\long\def\rewrite#1\endrewrite{}
+\def\lightmode{\long\def\erase##1\enderase{} \def\rewrite{}\def\endrewrite{}}
+%\lightmode
+
+\erase
+\usepackage[brazil]{babel}
+\usepackage{fontspec}
+\enderase
+\usepackage{lipsum} \def\lip{\lipsum[1][1-2]} \def\lipp{\lipsum[1]}
+\usepackage{graphicx}
+\usepackage[cmyk]{xcolor}
+\erase
+\usepackage[style=abnt]{biblatex} \addbibresource{abntexto.bib}
+\usepackage[colorlinks,linkcolor=blue]{hyperref}
+\enderase
+
+\rewrite
+\let\href=\relax \def\textcite#1{{\bfseries#1}} \def\today{}
+\endrewrite
+
+% MARKUP
+% ================================================
+
+\def\ttnoligs{\ttfamily\@noligs}
+
+\def\cs#1{{\ttnoligs \string#1}}
+\def\meta#1{{\ttnoligs <\/{\itshape#1\/}>}} % ⟨⟩
+\def\cc#1{{\ttnoligs \{\meta{#1}\}}}
+\def\kk#1{{\ttnoligs [\meta{#1}]}}
+
+\def\arg{\cc{arg}}
+\def\opt{\kk{opt}}
+\def\ccval#1{{\ttnoligs \{#1\}}}
+\def\kkval#1{{\ttnoligs [#1]}}
+\def\pkg#1{{\ttnoligs #1}}
+
+% VERBATIM
+% ================================================
+
+\def\adef#1{\catcode`#1=13 \begingroup \lccode`\~=`#1\lowercase{\endgroup\def~}}
+\def\dodef#1{\catcode`#1=12 }
+\def\codecatcodes{\let\do=\dodef \dospecials \catcode`\|=0 }
+
+{\catcode`\^^M=13 
+	\gdef\codepercent#1^^M{{\color{graycomment}\itshape\@percentchar#1^^M}}
+}
+
+\long\def\codeon{\begingroup \codecatcodes
+	\adef{\^^I}{\space\space\space}%
+	\adef{\^^M}{\par\leavevmode}%
+	\adef{\ }{\space}%
+	\adef{\%}{\codepercent}%
+	\startcode
+}
+
+{\catcode`\ =13 \catcode`\^^M=13 \catcode`\|=0 \catcode`\\=12 
+	|gdef|startcode^^M#1^^M\codeoff{|codebox{#1}|par|endgroup |codereset}
+}
+\def\codebox#1{\def\tnba at placewidth{\hsize \advance\hsize-3cm}%
+	\vskip\aboveplace
+	\parindent=0pt 
+	\ifx\tnba at savedplace\empty\else\tnba at makelegend\fi
+	\nobreak\nointerlineskip\vskip10pt
+	{\codefont{#1}}%
+	\nobreak\nointerlineskip\vskip8pt
+	\ifx\tnba at savedsrc\empty\else\tnba at makesrc\fi
+	\vskip\belowplace
+}
+\def\codereset{%
+	\let\tnba at savedplace=\empty
+	\let\tnba at savedlegend=\empty
+	\let\tnba at savedsrc=\empty
+	\let\@currentlabel=\empty
+}
+\def\codefont{\raggedright\leftskip=6pt\singlesp\small\ttnoligs\leftframed}
+\long\def\leftframed#1{\hbox{{\color{graybar}\kern1.5cm\vrule width1pt}\vtop{#1}}}
+
+% MISC
+% ================================================
+
+\definecolor{mono}{cmyk}{0,0,0,.73}
+\definecolor{graybar}{gray}{.75}
+\definecolor{graycomment}{gray}{.2}
+
+\erase
+\setmainfont{TeX Gyre Termes}
+\setmonofont{Inconsolatazi4-Regular}[Color=mono]
+%\newfontfamily\bgfont{Inconsolatazi4-Regular}[Color=bgfontcolor]
+\enderase
+
+\def\tocifont{\bfseries}
+\def\sectionfont{\bfseries}
+
+\sizedef \large {14.4pt}{17pt}{}
+\sizedef \Large {20.74pt}{25pt}{}
+\sizedef \LARGE {25pt}{30pt}{}
+
+\definelegendplace{code}{Código}{Lista de códigos}{cód.\,#1}{loc}
+\def\me{o autor.}
+
+\clubpenalty=10000 
+\widowpenalty=10000 
+
+\let\cite=\textcite
+\def\bibfont{\singlesp}
+\erase
+\bibitemsep=18pt
+\enderase
+
+\makeatother
+
+
+
+\begin{document}
+
+\leavevmode\vskip1.9in
+
+{\centering \LARGE\sffamily\bfseries
+	abntexto\\[0.4em] \Large\itshape\mdseries
+	Classe para {\upshape\LaTeX}\\[2em] \normalfont\large
+	Elayson\\[1ex]
+	\href{mailto:abntexto.classe at gmail.com}{abntexto.classe at gmail.com}\\[2.5ex]
+	2023-01-31\par}
+
+\vskip3in
+
+{\centering\large\ttfamily 2.0.0-alpha\par}
+
+\newpage
+
+\maketoc
+
+\textual
+
+\section{Apresentação}
+
+O \pkg{abntexto} é uma classe do \LaTeX\ criada para facilitar a utilização das normas da Associação Brasileira de Normas Técnicas (ABNT) em trabalhos acadêmicos (monografias, dissertações, teses).
+
+Este \emph{não} é um manual sobre \LaTeX\ (ou \TeX, a ferramenta que o constitui) nem tampouco uma descrição detalhada sobre as normas ABNT. Para aprender sobre \LaTeX\ leia \cite{viaexemplos} ou \cite{latex2eunnoficial}, disponível também em francês. Além disso, também se pode ler \cite{texbytopic} para aprender sobre o sistema \TeX\footnote{Note que os livros referenciados não foram realmente citados e isso não é aceito na Norma, no entanto este não é um trabalho acadêmico real, mas um manual.}.
+
+Já existe uma classe para aplicação das normas ABNT cujo nome é \pkg{abntex2}. Mas, diferente desta, o \pkg{abntexto} não depende  do \pkg{memoir}, uma classe de código-fonte e manual extensos e que implementa funções as quais, em sua maioria, não são pertinentes a um documento que use as diretrizes da ABNT.
+
+As normas ABNT as quais o \pkg{abntexto} se propõe a seguir são aquelas em vigor até o momento da criação deste manual.
+
+O \pkg{abntexto} ainda está em estágio \emph{alpha} e seu uso em documentos sérios não é recomendado, uma vez que \emph{bugs} são esperados.
+
+\section{Chamando a classe}
+
+Digite as linhas em \ref{cd:início} e use \pkg{abntexto}.
+
+\legend{code}{Início} \src\me
+\label{cd:início}
+\codeon
+% !TeX TS-program = lualatex
+\documentclass{abntexto}
+
+\usepackage[brazil]{babel}
+\usepackage{fontspec}
+
+\setmainfont{TeX Gyre Termes}
+
+\begin{document}
+	Texto
+\end{document}
+\codeoff
+
+\section{Fonte tipográfica}
+
+O tamanho da fonte é 12\,pt de imediato e pode ser configurado com o comando\\ \cs\setfontsize\cc{id} sendo que 12\,pt é a única opção disponível. Além disso, com os seletores de tamanho \cs\normalsize\ e \cs\small\ que configuram 12\,pt e 10\,pt, nessa ordem, é possível mudar o tamanho da fonte no corpo do documento.
+
+Mas, se você deseja outro tamanho de fonte, crie-o usando \cs\definefontsize\cc{id}\hfil\break \cc{definições} e \cs\sizedef\cs\ \unskip\meta{seletor}\cc{tamanho}\cc{entrelinha natural}. Em\hfil\break \cc{definições}, o seletor \cs\normalsize\ deve estar presente por meio de \cs\sizedef, caso contrário, a classe mostrará um erro.
+
+O espaçamento é de um e meio e pode ser alterado para dois com \cs\spacing\ccval{2}, por exemplo. Os atalhos \cs\singlesp, \cs\onehalfsp\ e \cs\doublesp\ estão disponíveis. Note que o espaçamento simples não tem o mesmo valor que o espaçamento um, portanto, \cs\singlesp\ é diferente de \cs\spacing\ccval{1}! Os atalhos \cs\onehalfsp\ e \cs\doublesp\ tem o mesmo significado de \cs\spacing\ccval{1.5} e \cs\spacing\ccval{2}.
+
+\section{\emph{Layout}}
+
+A folha é A4 por padrão e as margens esquerda e direita são de 3\,cm, 2\,cm para páginas ímpares e de 2\,cm, 3\,cm para páginas pares, respectivamente. Além disso, as margens superior e inferior têm, nessa ordem, 3\,cm, 2\,cm para todo o documento. Todas essas medidas podem ser alteradas com a macro \cs\setlayout\ que deve ser usada assim: \cs\setlayout\ccval{left=\meta{medida}, right=\meta{medida}, top=\meta{medida}, botttom=\meta{medida}}.
+
+Além das chaves anteriores também existe \cs{twoside} que é booleana, ou seja, aceita os valores \cs{true} ou \cs{false} e serve para ativar o modo de impressão em duas folhas onde as medidas das margens horizontais se invertem nas páginas pares. Ao não informar um valor para \cs{twoside} subentende-se que seja \cs{true}, portanto \cs\setlayout\ccval{twoside} equivale a \cs\setlayout\ccval{twoside=true} e esse princípio também se aplica a outras chaves booleanas.
+
+Existem dois comandos que configuram o \emph{layout} da página: \cs\pretextual\ que, além de desabilitar o modo \cs{twoside}, remove a numeração de página e é executado automaticamente logo após \cs{\begin\{document\}} e o comando \cs\textual\ que deve ser executado manualmente logo antes da primeira chamada de \cs\section\ para que a numeração de página seja posta no topo da página e as margens passem a ser espelhadas.
+
+\section{Sumário}
+
+Os comandos que mudam a fonte das entradas no ToC (Table of Contents, em inglês) são \cs\tocifont, \cs\tociifont, \dots, \cs\tocvfont\ (ver \ref{cd:contents}).
+
+\legend{code}{Aparência do sumário} \src\me
+\label{cd:contents}
+\codeon
+\documentclass{abntexto}
+
+\usepackage{color}
+
+\def \tocifont  {\color{red}\itshape\MakeUppercase}
+\def \tociifont {\color{blue}\bfseries}
+
+\begin{document}
+	\maketoc
+
+	\section{Título}
+	\subsection{Título}
+\end{document}
+\codeoff
+
+\section{Secionamento}
+
+A personalização das macros de seção (\cs\section, \cs\subsection\ etc.) é análoga a personalização do sumário e deve ser feita com \cs\sectionfont, \cs\subsectionfont, etc. como exemplificado em \ref{cd:sec}.
+
+Também há como alterar o espaço vertical acima e abaixo das seções usando \cs\abovesection, \cs\belowsection\ e derivados. Por exemplo, \cs\def\cs\abovesubsection\ccval{2cm} insere um espaço de 2\,cm acima de \cs\subsection.
+
+\legend{code}{Aparência das seções} \src\me
+\label{cd:sec}
+\codeon
+\documentclass{abntexto}
+
+\usepackage{color}
+
+\def \sectionfont       {\color{blue}\scshape}
+\def \subsectionfont    {\color{red}\itshape}
+\def \subsubsectionfont {\color{yellow}\sffamily}
+
+\begin{document}
+	\maketoc
+
+	\section{Texto}
+	\subsection{Texto}
+	\subsubsection{Texto}
+\end{document}
+\codeoff
+
+\section{Alíneas}
+
+Use o ambiente \cs{topics} para criar alíneas. Ele dispõe de dois níveis sendo que o segundo usa um travessão como marcador conforme o exemplo em \ref{cd:topics}. Naturalmente, é permitido usar \cs\label\ após um item.
+
+\legend{code}{Alíneas} \src\me
+\label{cd:topics}
+\codeon
+\begin{topics}
+	\item \label{al:x} 1
+		\begin{topics}
+			\item x
+			\item y
+			\item z
+		\end{topics}
+	\item \label{al:y} 2
+	\item 3
+\end{topics}
+\codeoff
+
+\section{Áreas de legenda}
+
+Use \cs\place\ para inserir áreas de legenda como mostrado em \ref{cd:place}. Mas existem condições: \cs\place\ deve vir por último e \cs\label\ precisa estar depois de \cs\legend. Além disso, existe a possibilidade de alterar o espaço vertical acima e abaixo de uma área de legenda com \cs\def\cs\aboveplace\cc{valor}\ e \cs\def\cs\belowplace\cc{valor}.
+
+\legend{code}{Áreas de legenda} \src\me
+\label{cd:place}
+\codeon
+\usepackage{graphicx}
+
+\begin{document}
+	\legend{figure}{Um título}
+	\src{\texttt{www.site.com.br}. Acesso em 01 jan. 2020.}
+	\label{fig:teste}
+	\place{\includegraphics[width=0.4\linewidth]{example-image}}
+
+	Ver \ref{fig:teste}.
+\end{document}
+\codeoff
+
+O leitor pode querer definir uma nova área de legenda usando, por exemplo, a instrução: \cs\definelegendplace\ccval{diagram}\ccval{Diagrama}\ccval{Lista de diagramas}\ccval{diag.\cs\,\cs#1}\ccval{lod} que vai criar o comando \cs\makelod\ para escrever no documento as entradas do arquivo auxiliar .lod.
+
+\section{Formatação de {\ttfamily\protect\textbackslash cite} e referências}
+
+Até o momento o \pkg{abntexto} não possui macros para formatação de \cs\cite\ e referências. Utilize \cs{\usepackage[style=abnt]\{biblatex\}}.
+
+\section{Citações}
+
+Para inserir aspas em citações diretas use \cs\enquote\ccval{texto}\cs\cite\cc{key}. Mas, se tratando de citações diretas com mais de três linhas, alterne para \cs\Enquote\ccval{texto \cs\cite\cc{key}}.
+
+\section{Apêndice e anexo}
+
+Com os comandos \cs\appendix\ e \cs\annex\ as próximas seções serão formatadas com os indicativos desejados: “Apêndice 1 --- \dots” ou “Anexo 1 --- \dots” (ver \ref{cd:appendix}).
+
+\legend{code}{Anexos e apêndices} \src\me
+\label{cd:appendix}
+\codeon
+\begin{document}
+	\appendix
+	\section{Lorem}
+	\section{Lipsum}
+
+	\annex
+	\section{Lorem}
+	\section{Lipsum}
+\end{document}
+\codeoff
+
+Pode-se alterar a largura dos rótulos das entradas de apêndice/anexo no sumário redefinindo \cs\appendixlabelwidth \,/\,\cs\annexlabelwidth.
+
+%\end{document} 
+
+\newpage
+
+\erase
+\corrprinton
+\printbibliography
+\corrprintoff
+\enderase
+
+\newpage
+
+\let\origsection=\section
+\appendix
+
+\section{Glossário}
+
+%\countsection=0
+%\def\sec#1{{\def\addcontentsline##1##2##3{}\origsection{#1}}}
+%\sec{Glossário}
+
+Você pode criar glossários com o pacote \pkg{glossaries}.
+
+\codeon
+\usepackage{lipsum}
+\usepackage{glossaries}
+
+\makenoidxglossaries
+
+\newglossaryentry{metalism}{name=metalismo,description={Tipo de sistema monetário cujo valor da moeda, geralmente de uma nação ou de um país, é determinado pela quantidade constante de certo metal (ouro ou prata), desta forma se estabelece um valor fixo de troca entre esses metais e o próprio dinheiro}}
+
+\newglossaryentry{lip}{name=lipsum,description={\lipsum[1]}}
+
+\begin{document}
+	O \gls{metalism} e o \gls{lip}.
+
+	\corrprinton
+		\printnoidxglossary
+	\corrprintoff
+\end{document}
+\codeoff
+
+\section{Lista de siglas}
+
+O pacote \pkg{glossaries} também serve para criar uma lista de siglas.
+
+\codeon
+\usepackage{lipsum}
+\usepackage[acronym]{glossaries}
+
+\makenoidxglossaries
+
+\newacronym{ibge}{IBGE}{Instituto Brasileiro de Geografia e Estatística}
+\newacronym{html}{HTML}{Hypertext Markup Language}
+
+\begin{document}
+	1ª chamada: \gls{ibge}, \gls{html}.
+	
+	2ª chamada: \gls{ibge}, \gls{html}.
+
+	\corrprinton
+		\def\acronymname{Lista de siglas}
+		\printnoidxglossary[type=acronym]
+	\corrprintoff
+\end{document}
+\codeoff
+
+\section{\emph{Feedback}}
+Sugestões, relatos de \emph{bugs} e doações são bem-vindas.
+
+\section{Código-fonte}
+
+% MACROS PARA O CÓDIGO-FONTE
+% ================================================
+
+\makeatletter
+
+\definecolor{bg}{cmyk}{0,0.06,0,0}
+\definecolor{comment}{cmyk}{0.9,0,0,0.1}
+\definecolor{letter}{cmyk}{0,0,0,.8}
+
+\parskip=0pt plus.2ex minus.1ex
+
+\countsection=0
+\def\addcontentsline#1#2#3{}
+\def\sectionfont{\itshape}
+\def\sec#1\par{\origsection{#1}}
+
+{\catcode`\^^M=13 
+	\gdef\codepercent#1^^M{{\bfseries\color{comment}\@percentchar#1^^M}}
+}
+
+\def\codecatcodes{\let\do=\dodef \dospecials}
+
+\long\def\bcode{\par\begingroup \codecatcodes
+	\adef{\^^I}{\space\space\space}%
+	\adef{\^^M}{\par\leavevmode}%
+	\adef{\ }{\space}%
+	\adef{\%}{\codepercent}%
+	\startcode
+}
+{\catcode`\%=13 \catcode`\ =13 \catcode`\^^M=13 \catcode`\|=0 \catcode`\\=12 
+	|long|gdef|startcode #1^^M% |ecode{|codefont{#1}|par|endgroup}
+}
+
+\def\codefont{\raggedright\fontsize{9pt}{10pt}\selectfont\ttnoligs\addfontfeature{Color=letter}\bgbox}
+
+\newdimen\tmpdim
+\newdimen\coloronwd \coloronwd=\hsize
+\newdimen\hh \hh=3pt \def\hhkern{\kern\hh}
+\newdimen\vv \vv=4pt \def\vvkern{\kern\vv}
+
+\splitmaxdepth=4pt
+
+\def\coloron#1{\leavevmode \setbox0=\vbox{\vvkern \hsize=\coloronwd \advance\hsize-2\hh
+		\hbox{\hhkern\vbox{#1}\hhkern}\vvkern}%
+	\coloronA \box0
+}
+\def\coloronA{\rlap{\color{bg}\vrule width\wd0 height\ht0 depth\dp0}}
+
+\def\splitcoloron{\tmpdim=\pagegoal \advance\tmpdim by-2\vv
+	\setbox4=\vsplit2 to\tmpdim
+	\coloron{\unvbox4}\par
+	\coloron{\unvbox2}%
+}
+\long\def\bgbox#1{\par \vskip\medskipamount
+	\setbox0=\vbox{\vvkern \hsize=\coloronwd \advance\hsize-2\hh
+		\hbox{\hhkern\vbox{#1}\hhkern}\vvkern}%
+	\ifdim \ht0>\pagegoal
+		\setbox2=\vbox{\advance\hsize-2\hh #1}%
+		\splitcoloron
+	\else
+		\coloron{#1}%
+	\fi
+	\par \vskip\smallskipamount
+}
+
+\def\srccatcodes{\catcode`\!=14 \catcode`\%=9 \catcode`\|=0 }
+
+\begingroup \raggedbottom \parskip=0pt \srccatcodes 
+\input abntexto.cls%
+\par\endgroup 
+
+\end{document}


Property changes on: trunk/Master/texmf-dist/doc/latex/abntexto/abntexto.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/abntexto/abntexto.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/abntexto/abntexto.cls	2023-02-01 12:36:52 UTC (rev 65704)
+++ trunk/Master/texmf-dist/tex/latex/abntexto/abntexto.cls	2023-02-01 21:04:40 UTC (rev 65705)
@@ -1,17 +1,10 @@
 %! Public Domain Software
-%! 2022-10-12
-%! 1.2.1-alpha
+%! 2023-01-31
+%! 2.0.0-alpha
 %! Elayson
 %! abntexto.classe at gmail.com
 
-%! ANNOUNCEMETS
-
-%!> Changed the manual's typographic font to a serif because they are better for reading long texts — although the manual is purposely short.
-
-%!> Removal of \srcname macro because it is useless.
-
-%! SUMÁRIO
-
+%! RECOMENDAÇÕES
 %! PRÉ-CONFIGURAÇÕES
 %! FONTES
 %! LAYOUT
@@ -22,18 +15,15 @@
 %! TABELAS
 %! ÁREAS DE LEGENDA
 %! NOTAS DE RODAPÉ
-%! UTILIDADES
 %! IDENTIFICAÇÃO DO TRABALHO
 %! A VÍRGULA COMO SEPARADOR DECIMAL
 %! INICIALIZAÇÃO
 
-% |sec RECOMENDAÇÕES
-% !=======================================================
+% \sec RECOMENDAÇÕES
 
-% Macros internas não podem ser modificadas ou usadas diretamente. Isso é porque essas macros podem ser redefinidos ou até renomeados em futuras versões desta classe. Por macros internas entende-se aquelas com prefixo do pacote em questão, neste caso, \cs{tnba@}. Se você precisa de algum comando interno, defina outro sem anexar o prefixo.
+% Macros internas não podem ser modificadas ou usadas diretamente. Isso é porque essas macros podem ser redefinidas ou até renomeadas em futuras versões desta classe. Por macros internas entende-se aquelas com o prefixo do pacote em questão, neste caso, \cs{tnba@}. Se você precisa de algum comando interno, defina outro sem anexar o prefixo.
 
 % \sec PRÉ-CONFIGURAÇÕES
-% !=======================================================
 
 % Identificação do formato \TeX\ e da classe. Apenas o pacote \pkg{keyval} é carregado no \pkg{abntexto}.
 
@@ -40,60 +30,73 @@
 % |bcode !------------------------------------------------
 \NeedsTeXFormat{LaTeX2e}
 
-\ProvidesClass{abntexto}[2022-10-12 1.2.1-alpha Preparation of works in ABNT standards]
+\ProvidesClass{abntexto}[2023-01-31 2.0.0-alpha Preparation of works in ABNT standards]
 
 \RequirePackage{keyval}
 % |ecode !------------------------------------------------
 
-% Definição de um sistema \emph{chave=valor} pessoal e de macros auxiliares. Perceba que \cs{\tnba at bodyhook} não pode ser igual a \cs\relax, mas \cs\empty\ ao invés.
+% Definição de um sistema \emph{chave=valor} pessoal e de macros auxiliares.
 
 % |bcode !------------------------------------------------
-\def\tnba at keyprefix{tnba}
+\def\tnba at key{\define at key{tnba@\tnba at keyfamily}}
+\def\tnba at setkeys#1{\setkeys{tnba@#1}}
 
-\def\tnba at key{\define at key{\tnba at keyprefix @\tnba at keyfamily}}
-\def\tnba at setkeys{\setkeys{\tnba at keyprefix @\tnba at keyfamily}}
-\def\tnba at setmacrokeys#1{\setkeys{\tnba at keyprefix @#1}}
-
-\def\advancecount#1{\global\advance#1by1 }
 \def\tnba at addto#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}}
-\def\tnba at tobody{\tnba at addto\tnba at bodyhook}
 
-\let\tnba at bodyhook=\empty
-\AddToHook{begindocument}{\def\tnba at body{}\tnba at bodyhook}
+\newif \iftnba at inbody
+\AddToHook{begindocument}{\tnba at inbodytrue}
 % |ecode !------------------------------------------------
 
-% Comando de \emph{debug}.
+% Alertas, mensagens, \emph{debug}.
 
 % |bcode !------------------------------------------------
-\def\tnba at error{\ClassError{abntexto}}
+\def\tnba at warning{\ClassWarningNoLine{abntexto}}
+\def\tnba at error#1{\ClassError{abntexto}{#1}{}}
 % |ecode !------------------------------------------------
 
+% Condicionais para identificação da extensão \TeX. 
+
+% |bcode !------------------------------------------------
+\newif \iftnba at PDFTEX
+\newif \iftnba at XETEX
+\newif \iftnba at LUATEX
+
+\ifx\directlua\undefined \ifx\XeTeXversion\undefined
+	\tnba at PDFTEXtrue \else
+	\tnba at XETEXtrue  \fi \else
+	\tnba at LUATEXtrue     \fi
+% |ecode !------------------------------------------------
+
 % \sec FONTE TIPOGRÁFICA
-% !=======================================================
 
-% Apenas o tamanho 12\,pt está definido. Defina outros usando \cs\fontsizedef\cc{size}\cc{defs}.
+% Apenas o tamanho 12\,pt está definido. Defina outros usando \cs\definefontsize\cc{id}\hfil\break \cc{definições}.
 
-% Diferentemente de outras âncoras, \cs{\tnba at setfontsizehook} deve ser executado antes de \cs\begin\ccval{document} para evitar o alerta sobre \cs\normalsize\ não estar definido.
+% |bcode !------------------------------------------------
+\def\definefontsize#1#2{\@namedef{tnba at fontsize@#1}{#2}}
 
-% |bcode !------------------------------------------------
-\def\fontsizedef#1#2{\@namedef{tnba at fontsize@#1}{#2}}
-\def\sizeselectordef#1#2#3{\DeclareRobustCommand#1{\@setfontsize#1{#2}{#3}}}
-\def\normalsizedef#1#2{\def\normalsize{\@setfontsize\normalsize{#1}{#2}}}
 \def\setfontsize#1{\ifcsname tnba at fontsize@#1\endcsname
-	\def\tnba at setfontsizehook{\csname tnba at fontsize@#1\endcsname} \else
-	\let\normalsize=\relax
-	\tnba at error{Tamanho de fonte *#1* desconhecido}{}\relax \fi
+	\def\tnba at setfontsizehook{\csname tnba at fontsize@#1\endcsname}\else
+	\let\normalsize=\relax \tnba at error{Tamanho de fonte ''#1'' desconhecido}\relax \fi
 }
 
-\AddToHook{begindocument/before}{\tnba at setfontsizehook}
+\@onlypreamble \setfontsize
 
+\def\sizedef#1#2#3#4{\DeclareRobustCommand#1{\fontsize{#2}{#3}\selectfont#4}}
+
 \def\spacing#1{\def\currspacing{#1}%
-	\ifx\tnba at body\undefined
-		\tnba at tobody{\tnba at spacing{#1}} \else
-		\tnba at spacing{#1}\fi \ignorespaces
+	\@tempdima=\f at size pt \baselineskip=#1\@tempdima \ignorespaces
 }
-\def\tnba at spacing#1{\dimen0=\f at size pt \dimen0=#1\dimen0 \baselineskip=\dimen0}
 
+\def\currspacing{1.5}
+\def\normalsize{}
+\def\tnba at setfontsizehook{}
+
+\AddToHook{begindocument}{%
+	\tnba at setfontsizehook
+	\normalsize
+	\@tempdima=\f at size pt \baselineskip=\currspacing\@tempdima
+}
+
 \def\singlesp{\baselineskip=\normalbaselineskip}
 \def\onehalfsp{\spacing{1.5}}
 \def\doublesp{\spacing{2}}
@@ -100,63 +103,52 @@
 % |ecode !------------------------------------------------
 
 % \sec \emph{LAYOUT}
-% !=======================================================
 
+% Se você precisa de configurações de página mais avançadas use o pacote \pkg{geometry}, mas não use \cs\setlayout\ e \cs\geometry\ simultaneamente.
+
 % |bcode !------------------------------------------------
-\def\tnba at keyfamily{paper}
+\iftnba at LUATEX
+	\protected\edef\pdfhorigin {\pdfvariable horigin}
+	\protected\edef\pdfvorigin {\pdfvariable vorigin}
+	\let\pdfpagewidth=\pagewidth
+	\let\pdfpageheight=\pageheight
+\fi
 
-\def\papersizedef#1(#2,#3){\def\tnba at keyfamily{paper}%
-	\tnba at key{#1}[]{\def\tnba at W{#2}\def\tnba at H{#3}}%
-}
+\def \tnba at keyfamily {setlayout}
 
-\tnba at key{width}    {\def\tnba at W{#1}}
-\tnba at key{height}   {\def\tnba at H{#1}}
-\tnba at key{left}     {\def\tnba at L{#1}}
-\tnba at key{right}    {\def\tnba at R{#1}}
-\tnba at key{top}      {\def\tnba at T{#1}}
-\tnba at key{bottom}   {\def\tnba at B{#1}}
-\tnba at key{twoside}[true]{\def\tnba at twoside{#1}}
+\tnba at key{paper}        {\csname tnba at papersize@#1\endcsname}
+\tnba at key{width}        {\def\tnba at W{#1}}
+\tnba at key{height}       {\def\tnba at H{#1}}
+\tnba at key{left}         {\def\tnba at L{#1}}
+\tnba at key{right}        {\def\tnba at R{#1}}
+\tnba at key{top}          {\def\tnba at T{#1}}
+\tnba at key{bottom}       {\def\tnba at B{#1}}
+\tnba at key{twoside}[true]{\csname @twoside#1\endcsname}
 
-\def\paper#1{\tnba at setmacrokeys{paper}{#1}%
-	\paperwidth=\tnba at W
-	\paperheight=\tnba at H
-	\oddsidemargin=\tnba at L
-	\evensidemargin=\tnba at R
+\def \setlayout #1{\tnba at setkeys{setlayout}{#1}%
+	\paperwidth=\tnba at W    \paperheight=\tnba at H
+	\oddsidemargin=\tnba at L \evensidemargin=\tnba at R
+	\textwidth=\paperwidth \textheight=\paperheight
 	\topmargin=\tnba at T
-	\textwidth=\paperwidth 
-	\textheight=\paperheight
 	\headheight=12pt 
 	\headsep=1cm 
-	\advance\topmargin-\headheight \advance\topmargin-\headsep 
+	\advance\topmargin-\headheight \advance\topmargin-\headsep
 	\advance\textwidth-\tnba at L     \advance\textwidth-\tnba at R
-	\advance\textheight-\tnba at T    \advance\textheight-\tnba at B 
-	\setbox0=\hbox{\@setfontsize\@tempa{10pt}{12pt}\@tempa 1}%
-	\advance\headsep-\ht0 
-	\ifx\pdfpagewidth\undefined
-		\ifx\pagewidth\undefined
-			\tnba at error{O comando \@backslashchar paper só suporta saída em PDF.
-			 			 Use o formato PDF ou carregue o pacote *geometry*}\expandafter\enddocument\relax \else
-			\horigin=0pt 
-			\vorigin=0pt 
-			\pagewidth=\paperwidth 
-			\pageheight=\paperheight
-		\fi
+	\advance\textheight-\tnba at T    \advance\textheight-\tnba at B
+	\tnba at setlayoutA
+}
+
+\def \tnba at setlayoutA {%
+	\iftnba at XETEX
+		\advance\oddsidemargin-1in \advance\evensidemargin-1in \advance\topmargin-1in 
+		\pdfpagewidth=\paperwidth  \pdfpageheight=\paperheight
 	\else
-		\ifx\pdfhorigin\undefined
-			\advance\oddsidemargin-1in 
-			\advance\topmargin-1in 
-			\pdfpagewidth=\paperwidth
-			\pdfpageheight=\paperheight
-		\else
-			\pdfhorigin=0pt 
-			\pdfvorigin=0pt 
-			\pdfpagewidth=\paperwidth
-			\pdfpageheight=\paperheight
-		\fi
+		\pdfhorigin=0pt            \pdfvorigin=0pt 
+		\pdfpagewidth=\paperwidth  \pdfpageheight=\paperheight
 	\fi
-	\ifx\tnba at twoside\undefined \else
-	\csname @twoside\tnba at twoside\endcsname \fi
 }
+
+\def\definepapersize#1#2#3{\@namedef{tnba at papersize@#1}{\def\tnba at W{#2}\def\tnba at H{#3}}}
 % |ecode !------------------------------------------------
 
 % O estilo de página \cs\pretextual\ omite a numeração de página e desliga o modo \cs{twoside} porque os elementos pré-textuais que compreendem as folhas da capa à do sumário, devem constar no anverso da página, ou seja, na “frente” da folha.
@@ -164,285 +156,296 @@
 % A instrução \cs\textual\ põe a numeração de página no topo direito nas páginas ímpares e no topo esquerdo em paginas pares. Além disso, \cs{twoside} vai espelhar as margens horizontais.
 
 % |bcode !------------------------------------------------
-\def\pretextual{\paper{twoside=false}%
+\def\pretextual{\setlayout{twoside=false}%
 	\let\@oddhead=\empty
 	\let\@evenhead=\empty
 	\let\@oddfoot=\empty
 	\let\@evenfoot=\empty
 }
-\def\textual{\paper{twoside=true}%
-	\def\@oddhead{{\itshape\rightmark}\hfil{\small\thepage}}%
-	\def\@evenhead{{\small\thepage}\hfil\itshape\leftmark}%
-	\let\@oddfoot=\empty
-	\let\@evenfoot=\empty
-	\justifying
+\def\textual{\setlayout{twoside=true}%
+	\def\@oddhead{\hfil\small\thepage}%
+	\def\@evenhead{\small\thepage\hfil}%
+	\def\@oddfoot{}%
+	\def\@evenfoot{}%
 	\parindent=1.5cm 
 }
 % |ecode !------------------------------------------------
 
 % \sec SUMÁRIO
-% !=======================================================
 
-% Aqui, \cs\extline\ foi baseado em \cs\@dottedtocline, do kernel do LaTeX. Ele não é uma instrução privada, ou seja, com prefixo interno, pois existe a chance de o leitor querer redefiní-lo (o mesmo vale para \cs\extlineshape).
+% Aqui, a macro \cs\extline\ foi baseada em \cs\@dottedtocline, do kernel do \LaTeX. Ela não é uma instrução privada, ou seja, com prefixo interno, porque existe a chance de o leitor querer redefiní-la.
 
 % |bcode !------------------------------------------------
+\newdimen\extlabelwidth
+
 \def\thepage{\the\c at page}
 
-\def\extline#1#2#3#4{%
+\def\extpagenumwidth{1.55em}
+\def\extrightmargin{2.55em}
+
+\def\extline#1#2#3#4#5{\vskip0pt plus.2pt
+	\extlabelwidth=#2
 	\begingroup
-		\csname use#1\romannumeral#2font\endcsname \nobreak
-		\extlineshape \relax
-		\hskip-\leftskip {#3}\nobreak
-		\leaders\hbox{$\m at th \mkern4.5mu\hbox{.}\mkern4.5mu$}\hfil\nobreak
-		\hbox to1.55em{\hss #4\kern-1pt\kern1pt}\par
+		\parindent=#1 \leftskip=#1
+		\rightskip=\extrightmargin \parfillskip=-\rightskip
+		\leavevmode #3{}\advance\leftskip\extlabelwidth \hskip-\leftskip #3{#4}\nobreak\extleaders\nobreak
+		\hbox to\extpagenumwidth{\hfil #5\kern-1pt\kern1pt}\nbpar
 	\endgroup
 }
-\def\extlineshape{%
-	\parindent=0pt 
-	\leftskip=\extlabelwidth
-	\rightskip=2.55em 
-	\parfillskip=-\rightskip
-	\interlinepenalty=10000 
-	\leavevmode
-}
+\def\extleaders{\leaders\hbox{$\mathsurround=0pt \mkern4.5mu\hbox{.}\mkern4.5mu$}\hfill}
 
-\def\l at section#1#2{\smartaboveskip{\penalty351}{\vskip1em plus1pt}%
+\def \l at toci #1#2{\addpenalty{351}\addvspace{1em plus1pt}%
+	\extlabelwidth=\toclabelwidth
 	\begingroup
-		\usetocifont \nobreak
-		\extlineshape \relax
-		\hskip-\leftskip \maybeuctoc{#1}\nobreak\hfil\nobreak
-		\hbox to1.55em{\hss #2\kern-1pt\kern1pt}\par
+		\parindent=0pt \rightskip=\extrightmargin \parfillskip=-\rightskip
+\leavevmode \tocifont{}\advance\leftskip\extlabelwidth
+		\hskip-\leftskip \tocifont{#1}\nobreak\hfil\nobreak
+		\hbox to\extpagenumwidth{\hfil #2\kern-1pt\kern1pt}\par
 	\endgroup
 }
-\def\l at subsection    {\extline{toc}{2}}
-\def\l at subsubsection {\extline{toc}{3}}
-\def\l at paragraph     {\extline{toc}{4}}
-\def\l at subparagraph  {\extline{toc}{5}}
+
+\def \l at tocii  {\extline{0pt}{\toclabelwidth}{\tociifont}}
+\def \l at tociii {\extline{0pt}{\toclabelwidth}{\tociiifont}}
+\def \l at tociv  {\extline{0pt}{\toclabelwidth}{\tocivfont}}
+\def \l at tocv   {\extline{0pt}{\toclabelwidth}{\tocvfont}}
 % |ecode !------------------------------------------------
 
-% Comandos de personalização do ToC (sumário).
+% \sec SECIONAMENTO
 
+% O comando \cs\hangfrom\ foi retirado do kernel. Ele vai ser útil na formatação das seções.
+
+% \cs\hreftocline\ habilita hyperlinks no sumário se o \pkg{hyperref} estiver carregado.
+
 % |bcode !------------------------------------------------
-\def\tociuppercase{\def\maybeuctoc{\MakeUppercase}}
-\def\tocilowercase{\let\maybeuctoc=\relax}
+\let\hangfrom=\@hangfrom
+\def\nbpar{{\interlinepenalty=10000\par}}
+\def\advcount#1{\advance#1by1 }
+\def\addtotoc{\hreftocline\currsecname \addcontentsline{toc}}
+% |ecode !------------------------------------------------
 
-\def\tocifont#1{\def\usetocifont{#1}}
-\def\tociifont#1{\def\usetociifont{#1}}
-\def\tociiifont#1{\def\usetociiifont{#1}}
-\def\tocivfont#1{\def\usetocivfont{#1}}
-\def\tocvfont#1{\def\usetocvfont{#1}}
+% |bcode !------------------------------------------------
+\newcount\countseclevel
+
+\newcount\countsection
+\newcount\countsubsection
+\newcount\countsubsubsection
+\newcount\countparagraph
+\newcount\countsubparagraph
+
+\def\thesection{\the\countsection}
+\def\thesubsection{\thesection .\the\countsubsection}
+\def\thesubsubsection{\thesubsection .\the\countsubsubsection}
+\def\theparagraph{\thesubsubsection .\the\countparagraph}
+\def\thesubparagraph{\theparagraph .\the\countsubparagraph}
 % |ecode !------------------------------------------------
 
-% \sec SECIONAMENTO
-% !=======================================================
+% Nesta parte estão definidos os comandos secionais. Nenhum destes comandos são internos, caso o leitor queira redefiní-los.
 
-% As linhas abaixo são basicamente uma cópia da funcionalidade do formato OpTeX. O par \cs\smartaboveskip, \cs\smartbelowskip, em especial, serve para eliminar \cs\vskip’s redundantes.
-
 % |bcode !------------------------------------------------
-\def\tnba at nbpar{\interlinepenalty=10000\par}
-\def\noindentfirst{\global\everypar={\tnba at wipeepar \setbox7=\lastbox}}
-\def\tnba at wipeepar{\global\everypar={}}
+\def\recountseci   {\countsubsection=0 \recountsecii}
+\def\recountsecii  {\countsubsubsection=0 \recountseciii}
+\def\recountseciii {\countparagraph=0 \recountseciv}
+\def\recountseciv  {\countsubparagraph=0 }
 
-\newskip\savedtitleskip
-\newskip\savedlastskip
+\def\noindentfirst{\global\everypar={\global\everypar={}\setbox7=\lastbox}}
+\def\tryindentfirst{}
 
-\def\smartaboveskip#1#2{\savedlastskip=\lastskip
-	\ifdim\lastskip>\z@ \vskip-\lastskip \fi
-	\ifnum\lastpenalty=11333 \vskip-\savedtitleskip \else #1\fi
-	\ifdim\savedlastskip>\z@ \setbox0=\vbox{#2\global\dimen0=\lastskip}%
-	\else \dimen0=\maxdimen \fi
-	\ifdim\savedlastskip>\dimen0 \vskip\savedlastskip \else #2\fi
+\def\startsection#1{\advcount\countsection \recountseci
+	\hangfrom{\sectionfont\thesection\quad}%
+	{\sectionfont{#1}\nbpar}%
+	\tryindentfirst
 }
-\def\smartbelowskip#1{#1\global\savedtitleskip=\lastskip \penalty11333}
+\def\startsubsection#1{\advcount\countsubsection \recountsecii
+	\hangfrom{\subsectionfont\thesubsection\quad}%
+	{\subsectionfont{#1}\nbpar}%
+	\tryindentfirst
+}
+\def\startsubsubsection#1{\advcount\countsubsubsection \recountseciii
+	\hangfrom{\subsubsectionfont\thesubsubsection\quad}%
+	{\subsubsectionfont{#1}\nbpar}%
+	\tryindentfirst
+}
+\def\startparagraph#1{\advcount\countparagraph \recountseciv
+	\hangfrom{\paragraphfont\theparagraph\quad}%
+	{\paragraphfont{#1}\nbpar}%
+	\tryindentfirst
+}
+\def\startsubparagraph#1{\advcount\countsubparagraph
+	\hangfrom{\subparagraphfont\thesubparagraph\quad}%
+	{\subparagraphfont{#1}\nbpar}%
+	\tryindentfirst
+}
 % |ecode !------------------------------------------------
 
+% A instrução \cs\setcurrlabel\ ensina a forma como \cs\label's devem ser referenciados. Esse comando pode ser útil em outros contextos.
+
 % |bcode !------------------------------------------------
-\newcount\sectioncount
-\newcount\subsectioncount
-\newcount\subsubsectioncount
-\newcount\paragraphcount
-\newcount\subparagraphcount
+\def\setcurrlabel#1{\def\@currentlabel{#1}}
 
-\def\thesection{\the\sectioncount}
-\def\thesubsection{\thesection .\the\subsectioncount}
-\def\thesubsubsection{\thesubsection .\the\subsubsectioncount}
-\def\theparagraph{\thesubsubsection .\the\paragraphcount}
-\def\thesubparagraph{\theparagraph .\the\subparagraphcount}
+\def\cfsection       {\setcurrlabel{secão\,\thesection}}
+\def\cfsubsection    {\setcurrlabel{subseção\,\thesubsection}}
+\def\cfsubsubsection {\setcurrlabel{subseçao\,\thesubsubsection}}
+\def\cfparagraph     {\setcurrlabel{subseçao\,\theparagraph}}
+\def\cfsubparagraph  {\setcurrlabel{subseçao\,\thesubparagraph}}
 
-\def\sectionmark#1{}
-\def\subsectionmark#1{}
-\def\subsubsectionmark#1{}
-\def\paragraphmark#1{}
-\def\subparagraphmark#1{}
-% |ecode !------------------------------------------------
+\def\identifysection       {\def\currsecname{section}\countseclevel=1 \cfsection}
+\def\identifysubsection    {\def\currsecname{subsection}\countseclevel=2 \cfsubsection}
+\def\identifysubsubsection {\def\currsecname{subsubsection}\countseclevel=3 \cfsubsubsection}
+\def\identifyparagraph     {\def\currsecname{paragraph}\countseclevel=4 \cfparagraph}
+\def\identifysubparagraph  {\def\currsecname{subparagraph}\countseclevel=5 \cfsubparagraph}
 
-% Nesta parte estão definidos os comandos secionais.
-
-% |bcode !------------------------------------------------
-\def\section#1{\par \smartaboveskip{\penalty351}{\vskip\sectionabove}\noindent
-	\advancecount\sectioncount
-	\def\@currentlabel{seção~\thesection}%+/
-	\setbox0=\hbox{\usesectionfont \thesection\quad}%
-	{\usesectionfont \hangindent=\wd0 \box0 \maybeucsec{#1}\tnba at nbpar}%
-%	\noindentfirst
-	\hreftocline{section}%
-	\addcontentsline{toc}{section}{\protect\extlabelbox{\thesection\hss}#1}%
-	\nobreak \smartbelowskip{\vskip\sectionbelow}%
+\def\section#1{\par \addpenalty{351}\addvspace\abovesection
+	\identifysection
+	\startsection{#1}%
+	\marksection{#1}%
+	\addtotoc{toci}{\protect\toclabelbox{\thesection}#1}%
+	\par\nobreak \vskip\belowsection
 }
-\def\subsection#1{\par \smartaboveskip{\penalty351}{\vskip\subsectionabove}\noindent
-	\advancecount\subsectioncount
-	\setbox0=\hbox{\usesubsectionfont \thesubsection\quad}%
-	{\usesubsectionfont \hangindent=\wd0 \box0 #1\tnba at nbpar}%
-%	\noindentfirst
-	\hreftocline{subsection}%
-	\addcontentsline{toc}{subsection}{\protect\extlabelbox{\thesubsection\hss}#1}%
-	\nobreak \smartbelowskip{\vskip\subsectionbelow}%
+\def\subsection#1{\par \addpenalty{351}\addvspace\abovesubsection
+	\identifysubsection
+	\startsubsection{#1}%
+	\marksubsection{#1}%
+	\addtotoc{tocii}{\protect\toclabelbox{\thesubsection}#1}%
+	\par\nobreak \vskip\belowsubsection
 }
-\def\subsubsection#1{\par \smartaboveskip{\penalty351}{\vskip\subsubsectionabove}\noindent
-	\advancecount\subsubsectioncount
-	\setbox0=\hbox{\usesubsubsectionfont \thesubsubsection\quad}%
-	{\usesubsubsectionfont \hangindent=\wd0 \box0 #1\tnba at nbpar}%
-%	\noindentfirst
-	\hreftocline{subsubsection}%
-	\addcontentsline{toc}{subsubsection}{\protect\extlabelbox{\thesubsubsection\hss}#1}%
-	\nobreak \smartbelowskip{\vskip\subsubsectionbelow}%
+\def\subsubsection#1{\par \addpenalty{351}\addvspace\abovesubsubsection
+	\identifysubsubsection
+	\startsubsubsection{#1}%
+	\marksubsubsection{#1}%
+	\addtotoc{tociii}{\protect\toclabelbox{\thesubsubsection}#1}%
+	\par\nobreak \vskip\belowsubsubsection
 }
-\def\paragraph#1{\par \smartaboveskip{\penalty351}{\vskip\paragraphabove}\noindent
-	\advancecount\paragraphcount
-	\setbox0=\hbox{\useparagraphfont \theparagraph\quad}%
-	{\useparagraphfont \hangindent=\wd0 \box0 #1\tnba at nbpar}%
-%	\noindentfirst
-	\hreftocline{paragraph}%
-	\addcontentsline{toc}{paragraph}{\protect\extlabelbox{\theparagraph\hss}#1}%
-	\nobreak \smartbelowskip{\vskip\paragraphbelow}%
+\def\paragraph#1{\par \addpenalty{351}\addvspace\aboveparagraph
+	\identifyparagraph
+	\startparagraph{#1}%
+	\markparagraph{#1}%
+	\addtotoc{tociv}{\protect\toclabelbox{\theparagraph}#1}%
+	\par\nobreak \vskip\belowparagraph
 }
-\def\subparagraph#1{\par \smartaboveskip{\penalty351}{\vskip\subparagraphabove}\noindent
-	\advancecount\subparagraphcount
-	\setbox0=\hbox{\subsubparagraphfont \thesubparagraph\quad}%
-	{\usesubparagraphfont \hangindent=\wd0 \box0 #1\tnba at nbpar}%
-%	\noindentfirst
-	\hreftocline{subparagraph}%
-	\addcontentsline{toc}{subparagraph}{\protect\extlabelbox{\thesubparagraph\hss}#1}%
-	\nobreak \smartbelowskip{\vskip\subparagraphbelow}%
+\def\subparagraph#1{\par \addpenalty{351}\addvspace\abovesubparagraph
+	\identifysubparagraph
+	\startsubparagraph{#1}%
+	\marksubparagraph{#1}%
+	\addtotoc{tocv}{\protect\toclabelbox{\thesubparagraph}#1}%
+	\par\nobreak \vskip\belowsubparagraph
 }
+% |ecode !------------------------------------------------
 
+% O \cs\@starttoc\ pode ser usado não apenas para criar sumários, mas, também, listas em geral, como listas de figuras, tabelas etc. as quais são armazenadas em arquivos de extensão predefinida, a saber, .toc, .lof, .lot entre outros. Portanto, \cs\makeext\ parece ter mais valor semântico.
+
+% |bcode !------------------------------------------------
+\def\toclabelbox#1{\hbox to\extlabelwidth{#1\hfil}}
+\def\makeext#1{\@starttoc{#1}}
+\def\tocname{Sumário}
+
+\def\marksection#1{\markboth
+	{\MakeUppercase{\thesection\quad #1}}%
+	{}%
+}
+\def\marksubsection#1{\markright{\MakeUppercase{\thesubsection\quad #1}}}
+
 \def\hreftocline#1{\Hy at MakeCurrentHrefAuto{#1}%
 	\Hy at raisedlink{\hyper at anchorstart{\@currentHref}\hyper at anchorend}%
 }
-\tnba at tobody{\ifx\hypertarget\undefined \let\hreftocline=\@gobble \fi}
+
+\AddToHook{begindocument}{%
+	\@ifpackageloaded{hyperref}{}{\let\hreftocline=\@gobble}%
+}
 % |ecode !------------------------------------------------
 
-% A macro \cs\heading, em particular, serve para produzir títulos não contados, como “Sumário”, “Lista de figuras”, “Apêndice” etc.
+% A macro \cs\heading\ serve para produzir títulos não contados, como “Sumário”, “Lista de figuras”, “Apêndice” etc.
 
 % |bcode !------------------------------------------------
-\def\heading#1{\noindent
-	{\usesectionfont \centering \maybeucsec{#1}\tnba at nbpar}%
-	\nobreak \vskip\sectionbelow
+\def\heading#1{\par {\centering \sectionfont{#1}\par}%
+	\nobreak \vskip\belowsection
 }
 % |ecode !------------------------------------------------
 
-% Comandos de personalização de seções.
+% Após a chamada da instrução \cs\appendix, \cs\section\ vai ser alterado para produzir títulos centralizados com o prefixo “Apêndice”. O mesmo vale para \cs\annex.
 
 % |bcode !------------------------------------------------
-\def\sectionuppercase{\def\maybeucsec{\MakeUppercase}}
-\def\sectionlowercase{\let\maybeucsec=\relax}
+\newcount\countappendix
+\newcount\countannex
 
-\def\sectionfont#1{\def\usesectionfont{#1}}
-\def\subsectionfont#1{\def\usesubsectionfont{#1}}
-\def\subsubsectionfont#1{\def\usesubsubsectionfont{#1}}
-\def\paragraphfont#1{\def\useparagraphfont{#1}}
-\def\subparagraphfont#1{\def\usesubparagraphfont{#1}}
+\def\theappendix{\@Alph\countappendix}
+\def\theannex{\@Alph\countannex}
 
-\def\sectionspaces#1#2{\def\sectionabove{#1}\def\sectionbelow{#2}}
-\def\subsectionspaces#1#2{\def\subsectionabove{#1}\def\subsectionbelow{#2}}
-\def\subsubsectionspaces#1#2{\def\subsubsectionabove{#1}\def\subsubsectionbelow{#2}}
-\def\paragraphspaces#1#2{\def\paragraphabove{#1}\def\paragraphbelow{#2}}
-\def\subparagraphspaces#1#2{\def\subparagraphabove{#1}\def\subparagraphbelow{#2}}
-
-\def\toclabelwidth{3.4ex}
-\def\toclabelbox#1{\hbox to\extlabelwidth{#1\hfil}}
-% |ecode !------------------------------------------------
-
-% Após a chamada da instrução \cs\appendix, \cs\section\ vai ser alterado para produzir títulos centralizados com o prefixo “Apêndice”. O mesmo vale para \annex.
-
-% |bcode !------------------------------------------------
-\newcount\appendixcount
-\newcount\annexcount
-
-\def\theappendix{\@Alph\appendixcount}
-\def\theannex{\@Alph\annexcount}
 \def\appendixlabelwidth{6.6em}
 \def\annexlabelwidth{6.2em}
 
-\def\l at appendix{\let\extlabelwidth=\appendixlabelwidth
-	\def\extlabelbox##1{\hbox to\extlabelwidth{Apêndice~##1~---~\hfil}}%
- 	\l at section
-}
-\def\l at annex{\let\extlabelwidth=\annexlabelwidth
-	\def\extlabelbox##1{\hbox to\extlabelwidth{Anexo~##1~---~\hfil}}%
- 	\l at section
-}
+\def\appendixlabelbox#1{\hbox to\appendixlabelwidth{Apêndice~#1~---~\hfil}}
+\def\annexlabelbox#1{\hbox to\annexlabelwidth{Anexo~#1~---~\hfil}}
 
-\def\appendix{\def\section##1{\newpage\noindent \advance\appendixcount by1
-	{\usesectionfont \centering \maybeucsec{Apêndice~\theappendix~---~##1}\tnba at nbpar}%
-		\hreftocline{appendix}%
-		\addcontentsline{toc}{appendix}{\protect\extlabelbox{\theappendix}##1}%
-		\nobreak \vskip\sectionbelow
-	}%
-}
-\def\annex{\def\section##1{\newpage\noindent \advance\annexcount by1
-	{\usesectionfont \centering \maybeucsec{Anexo~\theannex~---~##1}\tnba at nbpar}%
-		\hreftocline{annex}%
-		\addcontentsline{toc}{annex}{\protect\extlabelbox{\theannex}##1}%
-		\nobreak \vskip\sectionbelow
-	}%
-}
+\def\l at appendix{\l at toci}
+\def\l at annex{\l at toci}
+
+\def\appendix{\def\section##1{\newpage \global\advcount\countappendix
+	{\centering \sectionfont{Apêndice~\theappendix~---~##1}\par}%
+	\addcontentsline{toc}{appendix}{\protect\appendixlabelbox{\theappendix}##1}%
+	\nobreak \vskip\belowsection
+}}
+\def\annex{\def\section##1{\newpage \global\advcount\countannex
+	{\centering \sectionfont{Anexo~\theannex~---~##1}\par}%
+	\addcontentsline{toc}{annex}{\protect\annexlabelbox{\theannex}##1}%
+	\nobreak \vskip\belowsection
+}}
 % |ecode !------------------------------------------------
 
 % \sec CITAÇÕES
-% !=======================================================
 
+% Se o pacote \pkg{csquotes} estiver carregado, ele definirá sua própria versão de \cs\enquote, do contrário, o \pkg{abntexto} criará uma.
+
 % |bcode !------------------------------------------------
-\def\qt#1{``#1''}
+\AddToHook{begindocument}{%
+	\@ifpackageloaded{csquotes}{}{\protected\def\enquote#1{``#1''}}%
+}
 
-\def\quote#1{\smartaboveskip{\penalty351}{\vskip\baselineskip}%
-	\hbox to\hsize{\hfil\vtop{\advance\hsize-4cm \noindent\small #1\tnba at getprevdepth}}\tnba at useprevdepth
-	\smartbelowskip{\vskip\baselineskip}%
+\def\Enquote#1{\par\removelastskip
+	\vskip\baselineskip
+	{\noindent\leftskip=4cm \small #1\nbpar}%
+	\vskip\baselineskip
 }
 % |ecode !------------------------------------------------
 
 % \sec ALÍNEAS
-% !=======================================================
 
-% Estas linhas não foram baseadas no ambiente \cs{list} do LaTeX, portanto, não podem ser personalizadas pelo pacote \cs{enumitem}, por exemplo.
+% Estas linhas não foram baseadas no ambiente \cs{list} do LaTeX, portanto, não podem ser personalizadas por pacotes como \cs{enumitem}, por exemplo.
 
 % |bcode !------------------------------------------------
-\newcount\topicsdepth
-\newcount\topicscount
+\newcount\counttopicsdepth
+\newcount\counttopics
 
-\def\topicsitem{\par\leavevmode\noindent \advance\topicscount by1 
-	\def\@currentlabel{alínea~\@alph\topicscount )}%
-	\kern\dimexpr-\parindent-\topicslabelwidth\relax
+\def\topicsitem{\par\leavevmode \advcount\counttopics 
+	\setcurrlabel{alínea~\@alph\counttopics )}%
+	\noindent \kern \dimexpr -\parindent-\topicslabelwidth \relax
 	\hbox to\topicslabelwidth{\topicsmakelabel\hfil}%
 	\ignorespaces
 }
-\def\topicslabeli{\@alph\topicscount )}
+\def\topicslabeli{\@alph\counttopics )}
 \def\topicslabelii{---}
 
-\def\topics{\par \advance\topicsdepth by1 
-	\ifnum\topicsdepth=1 \advance\leftskip\parindent \fi
+\def\topics{\par\penalty51 \advcount\counttopicsdepth
+	\ifnum\counttopicsdepth=1 \advance\leftskip\parindent \fi
 	\advance\leftskip\topicslabelwidth
-	\edef\topicsmakelabel{\expandafter\noexpand\csname topicslabel\romannumeral\topicsdepth\endcsname}%
+	\edef\topicsmakelabel{\expandafter\noexpand\csname topicslabel\romannumeral\counttopicsdepth\endcsname}%
 	\let\item=\topicsitem
 	\tnba at addto\@esphack\ignorespaces
 }
-\let\endtopics=\par
+\def\endtopics{\par}
 % |ecode !------------------------------------------------
 
+% |bcode !------------------------------------------------
+
+\newenvironment{description}
+	{\list{}{\labelwidth=0pt \leftmargin=2em \itemindent=-\leftmargin \let\makelabel=\descriptionlabel}}
+	{\endlist}
+
+\def\descriptionlabel#1{\bfseries #1\hskip.5em }
+% |ecode !------------------------------------------------
+
 % \sec TABELAS
-% !=======================================================
 
-% Na classe \cs{article} o ambiente \cs{table} inicia o modo flutuante. Mas nesta classe ele é sinônimo de \cs{tabular} porque faz mais sentido para min.
+% Na classe \cs{article} o ambiente \cs{table} inicia o modo flutuante, mas nesta classe ele é sinônimo de \cs{tabular} porque faz mais sentido para min.
 
 % |bcode !------------------------------------------------
 \newenvironment{table}[1]{\begin{tabular}{#1}}{\end{tabular}}
@@ -449,38 +452,42 @@
 % |ecode !------------------------------------------------
 
 % \sec ÁREAS DE LEGENDA
-% !=======================================================
 
 % |bcode !------------------------------------------------
+\def\tnba at getprevdepth{\par\xdef\tnba at getprevdepthA{\the\prevdepth}}
+\def\tnba at useprevdepth{\par\prevdepth=\tnba at getprevdepthA}
+% |ecode !------------------------------------------------
+
+% |bcode !------------------------------------------------
 \def\tnba at lastplacenum{0}
 
-\def\legendplacedef#1#2#3#4#5{\expandafter\newcount\csname c@#1\endcsname
-	\@namedef{#1name}{#2}
-	\@namedef{p@#1}##1{#4}
-	\@namedef{ext@#1}{#5}
-	\@namedef{l@#1}{\extline{#5}{1}}
-	\expandafter\edef\csname the#1\endcsname{\expandafter\noexpand\the\csname c@#1\endcsname}
-	\@namedef{#5labelwidth}{10.4ex}
-	\@namedef{#5labelbox}##1{\hbox to\extlabelwidth{#2 ##1 ---\hfil}}
-	\@namedef{make#5}{\heading{#3}%
-		\expandafter\let\expandafter\extlabelwidth\csname #5labelwidth\endcsname
-		\expandafter\let\expandafter\extlabelbox\csname #5labelbox\endcsname
-		\@starttoc{#5}\twonewpage
-	}
+\def\definelegendplace#1#2#3#4#5{\expandafter\newcount\csname count#1\endcsname
+	\@namedef{#1name}{#2}%
+	\@namedef{p@#1}##1{#4}%
+	\@namedef{ext@#1}{#5}%
+	\@namedef{l@#5i}{\extline{0pt}{\csname #5labelwidth\endcsname}{\csname #5ifont\endcsname}}%
+	\expandafter\edef\csname the#1\endcsname{\expandafter\noexpand\the\csname count#1\endcsname}%
+	\@namedef{#5labelwidth}{10.4ex}%
+	\@namedef{#5labelbox}##1{\hbox to\extlabelwidth{#2~##1~---\hfil}}%
+	\@namedef{#5ifont}{}%
+	\@namedef{make#5}{\heading{#3} \makeext{#5}\twonewpage}%
 }
 % |ecode !------------------------------------------------
 
 % |bcode !------------------------------------------------
 \def\tnba at makelegend{\hbox to\hsize{\hfil\tnba at makelegendA\hfil}}
-\def\tnba at makelegendA{\advancecount{\csname c@\tnba at savedplace\endcsname}%
+\def\tnba at makelegendA{%\global\advance\csname count\tnba at savedplace\endcsname by1 
+	\global\advcount{\csname count\tnba at savedplace\endcsname}%
 	\vtop{\setbox0=\hbox{\legendlabel \tnba at savedlegend}%
 		\ifdim\wd0>\legendmaxwidth \hsize=\legendmaxwidth \else \hsize=\wd0 \fi
 		\legendlabel
 		\vtop{\setbox0=\hbox{\legendlabel}\advance\hsize-\wd0 \tnba at savedlegend}%
 	}%
-	\addcontentsline{\csname ext@\tnba at savedplace\endcsname}%
-			 			{\tnba at savedplace}%
-			 			{\protect\extlabelbox\thelegend \tnba at savedlegend}%
+	\edef\@tempa{\expandafter\noexpand\csname \csname ext@\tnba at savedplace\endcsname labelbox\endcsname}%
+	\edef\@tempa{\noexpand\addcontentsline{\expandafter\noexpand\csname ext@\tnba at savedplace\endcsname}%
+			 			                 {\expandafter\noexpand\csname ext@\tnba at savedplace\endcsname i}%
+			 			                 {\noexpand\protect\expandafter\noexpand\@tempa{\noexpand\thelegend}\noexpand\tnba at savedlegend}}%
+	\@tempa
 }
 
 \def\tnba at makesrc{\hbox to\hsize{\hfil\tnba at makesrcA\hfil}\tnba at useprevdepth}
@@ -490,23 +497,17 @@
 % |ecode !------------------------------------------------
 
 % |bcode !------------------------------------------------
-\def\legend#1#2{%
-	\ifdim\lastskip<0pt \else
-	\ifnum\lastpenalty=11333 \vskip-\placeabovespace \else
-	\removelastskip \fi\fi
-	\def\tnba at savedplace{#1}\def\tnba at savedlegend{#2}%
-	\def\@currentlabel{\csname p@#1\expandafter\endcsname
-		\the\expandafter\numexpr\csname c@#1\endcsname+1}%
+\def\legend#1#2{\removelastskip
+	\def\tnba at savedplace{#1}%
+	\def\tnba at savedlegend{#2}%
+	\setcurrlabel{\csname p@#1\expandafter\endcsname
+		\the\expandafter\numexpr\csname count#1\endcsname+1}%
 }
+
 \def\legendname{\csname \tnba at savedplace name\endcsname}
-\def\thelegend{\the\csname c@\tnba at savedplace\endcsname}
+\def\thelegend{\the\csname count\tnba at savedplace\endcsname}
 
-\def\src#1{%
-	\ifdim\lastskip<0pt \else
-	\ifnum\lastpenalty=11333 \vskip-\placeabovespace \else
-	\removelastskip \fi\fi
-	\def\tnba at savedsrc{#1}%
-}
+\def\src#1{\removelastskip \def\tnba at savedsrc{#1}}
 % |ecode !------------------------------------------------
 
 % |bcode !------------------------------------------------
@@ -514,27 +515,25 @@
 \let\tnba at savedlegend=\empty
 \let\tnba at savedsrc=\empty
 
-\long\def\place#1{\setbox0=\hbox{\ignorespaces#1}\edef\tnba at placewidth{\the\wd0}%
-	\vskip\placeabovespace
+\long\def\place#1{\vskip\aboveplace
 	\begingroup
+		\setbox0=\hbox{\ignorespaces#1\unskip}\edef\tnba at placewidth{\the\wd0}%
 		\parindent=0pt 
 		\ifx\tnba at savedplace\empty\else\tnba at makelegend\fi
-		\nointerlineskip\nobreak\vskip10pt 
-		\hbox to\hsize{\hfil\box0\hfil}%
-		\nointerlineskip\nobreak\vskip8pt 
-		\tnba at makesrc
-		\vskip\placebelowspace
+		\par\nointerlineskip\nobreak\vskip10pt 
+		\hbox to\hsize{\hfil\box0 \hfil}%
+		\par\nointerlineskip\nobreak\vskip8pt 
+		\tnba at makesrc \par
 	\endgroup
+	\vskip\belowplace
 	\let\tnba at savedplace=\empty
 	\let\tnba at savedlegend=\empty
 	\let\tnba at savedsrc=\empty
-	\let\@currentlabel=\empy
+	\let\@currentlabel=\empty
 }
-\def\placespaces#1#2{\def\placeabovespace{#1}\def\placebelowspace{#2}}
 % |ecode !------------------------------------------------
 
 % \sec NOTAS DE RODAPÉ
-% !=======================================================
 
 % As notas de rodapé também foram modificadas.
 
@@ -541,51 +540,34 @@
 % |bcode !------------------------------------------------
 \let\footnotesize=\relax
 \def\@makefnmark{\hbox{\@textsuperscript{\selectfont\@thefnmark}}}
-\def\@makefntext#1{\leavevmode \setbox0=\hbox{\@makefnmark\kern2pt}%
-\hangindent=\wd0 \box0 \small #1}
-\def\footnoterule{\kern18pt\hrule width5cm\kern2.6pt}
+\def\@makefntext#1{\hangfrom{\@makefnmark\kern2pt}\small #1}
+\def\footnoterule{\kern18pt \hrule width5cm \kern2.6pt }
 % |ecode !------------------------------------------------
 
-% \sec UTILIDADES
-% !=======================================================
+% \sec IDENTIFICAÇÃO DO TRABALHO
 
-% Algumas macros úteis foram definidos aqui como \cs\Enter\ que serve para produzir um espaço vertical equivalente àquele produzido com a tecla Enter em editores de texto como MS Word.
-
 % |bcode !------------------------------------------------
-\def\tnba at getprevdepth{\par\xdef\tnba at getprevdepthA{\the\prevdepth}}
-\def\tnba at useprevdepth{\par\prevdepth=\tnba at getprevdepthA}
-
-\long\def\sizedpar#1{\leavevmode\vtop{\ignorespaces#1\tnba at getprevdepth}\tnba at useprevdepth}
-
-\def\justifying{\let\\=\tnba at origcr
-	\leftskip=0pt \rightskip=0pt 
-	\finalhyphendemerits=5000 
-	\parfillskip=0pt plus1fil 
-}
-\let\tnba at origcr=\\
-
 \def\Enter{\@ifnextchar[\tnba at EnterS{\tnba at EnterS[]}}
 \def\tnba at EnterS[#1]{\vskip#1\baselineskip}
 
 \def\twonewpage{\newpage\leavevmode\newpage}
-% |ecode !------------------------------------------------
 
-% \sec IDENTIFICAÇÃO DO TRABALHO
-% !=======================================================
-
-% |bcode !------------------------------------------------
 \long\def\indexcard#1{\hbox{\vrule\vbox to7.5cm{\hsize=12.5cm \advance\hsize by-2cm \advance\hsize by-0.8pt 
-	\hrule\indexcardA{#1}\vss\indexcardbar\hrule}\vrule}%
+	\hrule\indexcardA{#1}\vss\xindexcardbar\hrule}\vrule}%
 }
 \long\def\indexcardA#1{\hbox spread2cm{\hss\vbox spread2cm{\vss\ttfamily#1\vss}\hss}%
 }
-\def\indexcardbar{\hrule\kern1cm}
 
-\def\judgeline#1{\par{\centering \rule{.7\linewidth}{.6pt}\\ #1\Enter[1.5]}}
+\def\xindexcardbar{}
+\def\indexcardbar{\def\xindexcardbar{\hrule\kern1cm}}
+
+\def\judgeline#1{\par {\centering \rule{.7\linewidth}{.6pt}\\ #1\Enter[1.5]}}
+
+\def\corrprinton{\begingroup \def\section##1##2{\heading{##2}}}
+\def\corrprintoff{\par\endgroup}
 % |ecode !------------------------------------------------
 
 % \sec A VÍRGULA COMO SEPARADOR DECIMAL
-% !=======================================================
 
 % No Brasil e em outro lugares a vírgula é um separador decimal, portanto \verb+$1,2$+ deve produzir um resultado diferente de \verb+$1, 2$+, por exemplo.
 
@@ -605,31 +587,85 @@
 \mathcode`\,="8000 
 % |ecode !------------------------------------------------
 
+% Abaixo está definido um ajuste para que o \pkg{hyperref} não crie conflitos com \cs\MakeUppercase\ nas entradas do sumário.
+
 % |bcode !------------------------------------------------
-\ifx\XeTeXversion\undefined
-\AddToHook{begindocument/before}{
-	\let\tnba at hyper@linkstart=\hyper at linkstart
-	\protected\def\hyper at linkstart#1#2{\lowercase{\tnba at hyper@linkstart{#1}{#2}}}
-}
+\iftnba at XETEX \else
+	\AddToHook{begindocument/before}{
+		\let\tnba at hyper@linkstart=\hyper at linkstart
+		\protected\def\hyper at linkstart#1#2{\lowercase{\tnba at hyper@linkstart{#1}{#2}}}
+	}
 \fi
 % |ecode !------------------------------------------------
 
+% \sec COMANDOS OBSOLETOS
+
+% O \pkg{abntexto} emitirá um aviso ou erro caso um destes comandos esteja obsoleto ou inexistente.
+
+% |bcode !------------------------------------------------
+\def\tnba at undefcmd#1{\def#1{\tnba at error{%
+	O comando ''\string#1'' não existe mais. Linha \the\inputlineno
+}}}
+\def\tnba at obscmd#1#2{\def#1{\tnba at error{%
+	O comando ''\string#1'' é obsoleto, use ''\unexpanded{#2}'' ao invés. Linha \the\inputlineno
+}}}
+\def\tnba at switchcmd#1#2{\def#1{\tnba at warning{%
+	O comando ''\string#1'' é obsoleto, use ''\string#2'' ao invés. Linha \the\inputlineno
+}#2}}
+
+\tnba at undefcmd \extlineshape
+
+\tnba at obscmd \sectionuppercase {\def\sectionfont{\MakeUppercase}}
+\tnba at obscmd \tociuppercase {\def\tocifont{\MakeUppercase}}
+\tnba at obscmd \sectionspaces {\def\abovesection{valor}\def\belowsection{valor}}
+\tnba at obscmd \subsectionspaces {\def\abovesubsection{valor}\def\belowsubsection{valor}}
+\tnba at obscmd \subsubsectionspaces {\def\abovesubsubsection{valor}\def\belowsubsubsection{valor}}
+\tnba at obscmd \paragraphspaces {\def\aboveparagraph{valor}\def\belowparagraph{valor}}
+\tnba at obscmd \subparagraphspaces {\def\abovesubparagraph{valor}\def\belowsubparagraph{valor}}
+
+\tnba at switchcmd \fontsizedef \definefontsize
+\tnba at switchcmd \advancecount \advcount
+\tnba at switchcmd \paper \setlayout
+\tnba at switchcmd \papersizedef \definepapersize
+\tnba at switchcmd \makeseci   \startsection
+\tnba at switchcmd \makesecii  \startsubsection
+\tnba at switchcmd \makeseciii \startsubsubsection
+\tnba at switchcmd \makeseciv  \startparagraph
+\tnba at switchcmd \makesecv   \startsubparagraph
+\tnba at switchcmd \qt \enquote
+\tnba at switchcmd \quote \Enquote
+% |ecode !------------------------------------------------
+
 % \sec INICIALIZAÇÃO
-% !=======================================================
 
-% Aqui o \pkg{abntexto} define as configurações padrões. Note que \cs\pretextual\ deve ser carregado após \cs{\begin{document}} para evitar múltiplas chamadas deste caso seja redefinido pelo usuário ou escritor de pacotes.
+% Aqui o \pkg{abntexto} define as configurações padrões. Note que \cs\pretextual\ deve ser carregado após \cs{\begin\{document\}} para evitar múltiplas chamadas deste, caso seja redefinido pelo usuário ou escritor de pacotes.
 
 % |bcode !------------------------------------------------
-\fontsizedef{12pt}{
-	\normalsizedef{12pt}{14.5pt}
-	\sizeselectordef\small{10pt}{12pt}
+\def\setnormalsize{%
+	\abovedisplayskip=12pt plus3pt minus7pt 
+	\belowdisplayskip=\abovedisplayskip
+	\abovedisplayshortskip=0pt plus3pt 
+	\belowdisplayshortskip=6.5pt plus3.5pt minus3pt 
 }
+\def\setsmall{%
+	\abovedisplayskip=10pt plus2pt minus5pt 
+	\belowdisplayskip=\abovedisplayskip
+	\abovedisplayshortskip=0pt plus3pt 
+	\belowdisplayshortskip=6pt plus3pt minus3pt 
+}
+
+\definefontsize{12pt}{%
+	\sizedef\normalsize{12pt}{14.5pt}{\setnormalsize}%
+	\sizedef\small{10pt}{12pt}{\setsmall}%
+}
+
 \setfontsize{12pt}
 \spacing{1.5}
 
-\papersizedef{A4}(210mm,297mm)
-\paper{
-	A4,
+\definepapersize{A4}{210mm}{297mm}
+
+\setlayout{
+	paper=A4,
 	left=3cm,
 	top=3cm,
 	right=2cm,
@@ -640,41 +676,42 @@
 \parindent=0pt 
 \parskip=0pt 
 
-\tociuppercase
-\sectionuppercase
+\def\tocifont   {\bfseries\MakeUppercase}
+\def\tociifont  {\itshape}
+\def\tociiifont {\scshape}
+\def\tocivfont  {}
+\def\tocvfont   {}
 
-\tocifont   {\bfseries}
-\tociifont  {\itshape}
-\tociiifont {\scshape}
-\tocivfont  {}
-\tocvfont   {}
+\def\sectionfont       {\bfseries\MakeUppercase}
+\def\subsectionfont    {\itshape}
+\def\subsubsectionfont {\scshape}
+\def\paragraphfont     {}
+\def\subparagraphfont  {}
 
-\sectionfont       {\bfseries}
-\subsectionfont    {\itshape}
-\subsubsectionfont {\scshape}
-\paragraphfont     {}
-\subparagraphfont  {}
+\def\abovesection       {\baselineskip}
+\def\abovesubsection    {\baselineskip}
+\def\abovesubsubsection {\baselineskip}
+\def\aboveparagraph     {\baselineskip}
+\def\abovesubparagraph  {\baselineskip}
 
-\sectionspaces       {\baselineskip}{\baselineskip}
-\subsectionspaces    {\baselineskip}{\baselineskip}
-\subsubsectionspaces {\baselineskip}{\baselineskip}
-\paragraphspaces     {\baselineskip}{\baselineskip}
-\subparagraphspaces  {\baselineskip}{\baselineskip}
+\def\belowsection       {\baselineskip}
+\def\belowsubsection    {\baselineskip}
+\def\belowsubsubsection {\baselineskip}
+\def\belowparagraph     {\baselineskip}
+\def\belowsubparagraph  {\baselineskip}
 
-\legendplacedef{figure}{Figura}{Lista de figuras}{fig.\,#1}{lof}
-\legendplacedef{table}{Tabela}{Lista de tabelas}{tab.\,#1}{lot}
+\definelegendplace{figure}{Figura}{Lista de figuras}{fig.\,#1}{lof}
+\definelegendplace{table}{Tabela}{Lista de tabelas}{tab.\,#1}{lot}
 
 \def\legendlabel{\legendname ~\thelegend ~---~}
 \def\srclabel{\raggedright\small Fonte:~}
 \def\legendmaxwidth{0.7\linewidth}
 
-\placespaces{\baselineskip}{\baselineskip}
+\def\aboveplace{\baselineskip}
+\def\belowplace{\baselineskip}
 
-\def\maketoc{\heading{Sumário}
-	\let\extlabelwidth=\toclabelwidth
-	\let\extlabelbox=\toclabelbox
-	\@starttoc{toc}\newpage
-}
+\def\toclabelwidth{3.4ex}
+\def\maketoc{\heading{Sumário} \makeext{toc}\newpage}
 
 \def\topicslabelwidth{4ex}
 



More information about the tex-live-commits mailing list.