texlive[75994] Master/texmf-dist: abntexto (6aug25)
commits+karl at tug.org
commits+karl at tug.org
Wed Aug 6 21:41:37 CEST 2025
Revision: 75994
https://tug.org/svn/texlive?view=revision&revision=75994
Author: karl
Date: 2025-08-06 21:41:37 +0200 (Wed, 06 Aug 2025)
Log Message:
-----------
abntexto (6aug25)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/abntexto/CHANGELOG
trunk/Master/texmf-dist/doc/latex/abntexto/README
trunk/Master/texmf-dist/doc/latex/abntexto/abntexto-exemplo.pdf
trunk/Master/texmf-dist/doc/latex/abntexto/abntexto-exemplo.tex
trunk/Master/texmf-dist/doc/latex/abntexto/abntexto.pdf
trunk/Master/texmf-dist/doc/latex/abntexto/abntexto.tex
trunk/Master/texmf-dist/tex/latex/abntexto/abntexto.cls
Added Paths:
-----------
trunk/Master/texmf-dist/tex/latex/abntexto/abntexto-3-2-1-beta.cls
Modified: trunk/Master/texmf-dist/doc/latex/abntexto/CHANGELOG
===================================================================
--- trunk/Master/texmf-dist/doc/latex/abntexto/CHANGELOG 2025-08-06 19:41:25 UTC (rev 75993)
+++ trunk/Master/texmf-dist/doc/latex/abntexto/CHANGELOG 2025-08-06 19:41:37 UTC (rev 75994)
@@ -1,7 +1,7 @@
# `abntexto`
Autor: Elayson Abreu
-Versão: 2025-07-21 4.0.1-beta
+Versão: 2025-08-05 4.0.2-beta
Contato: abntexto.classe at gmail.com
Licença: Public Domain Software
@@ -13,6 +13,22 @@
# Changelog
+## [4.0.2-beta] - 2025-08-05
+
+### Adições
+
+- Adicionado o arquivo `abntexto-3-2-1-beta.cls`;
+- Âncoras em `\normalsize` e `\abntsmall`. Nelas haverá valores
+ dependentes do tamanho da fonte como `\medskipamount`, por exemplo.
+ Novo comando: `\setamounts`;
+
+### Mudanças
+
+- Parâmetros flutuantes em multiplace geravam o erro "Not in outer par mode";
+- Excesso de espaço vertical entre título, conteúdo e fonte no ambiente "multiplace";
+- Adicionado espaço vertical antes de "Palavras-chave" e "Keywords" em `abntexto-exemplo.tex`;
+- O circuito em `abntexto-exemplo.tex` foi trocado;
+
## [4.0.1-beta] - 2025-07-21
### Mudanças
@@ -22,7 +38,7 @@
## [4.0.0-beta] - 2025-07-17
-### Adicionado
+### Adições
- Houve um número significativo de mudanças nessa versão, por isso
documentos antigos provavelmente terão layout alterado. Felizmente,
@@ -149,6 +165,7 @@
- A list of Standards covered by abntexto was duly explained in the manual
## [3.0.1-alpha] - 2023-10-12
+
- A PIX key for contributions has been added: abntexto.classe at gmail.com
- The definition of \place was inserted inside a group.
- \begcorrprint and \endcorrprint have been renamed in favor of
Modified: trunk/Master/texmf-dist/doc/latex/abntexto/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/abntexto/README 2025-08-06 19:41:25 UTC (rev 75993)
+++ trunk/Master/texmf-dist/doc/latex/abntexto/README 2025-08-06 19:41:37 UTC (rev 75994)
@@ -1,7 +1,7 @@
# `abntexto`
Author: Elayson Abreu
-Version: 2025-07-21 4.0.1-beta
+Version: 2025-08-05 4.0.2-beta
Contact: abntexto.classe at gmail.com
License: Public Domain Software
Modified: trunk/Master/texmf-dist/doc/latex/abntexto/abntexto-exemplo.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/abntexto/abntexto-exemplo.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/abntexto/abntexto-exemplo.tex 2025-08-06 19:41:25 UTC (rev 75993)
+++ trunk/Master/texmf-dist/doc/latex/abntexto/abntexto-exemplo.tex 2025-08-06 19:41:37 UTC (rev 75994)
@@ -1,6 +1,6 @@
%! Public Domain Software 2022-2025
-%! 2025-07-21
-%! 4.0.1-beta
+%! 2025-08-05
+%! 4.0.2-beta
%! Elayson Abreu
%! abntexto.classe at gmail.com
@@ -36,7 +36,7 @@
\setmonofont{InconsolataN-Regular.otf}
% Só é preciso guardar em macros informações que
-% serão utilizadas repetidas vezes como o Nome ou o
+% serão utilizadas repetidas vezes como o Nome ou
% o Título do trabalho, por exemplo.
\def \Autor{Elayson Abreu}
@@ -267,7 +267,7 @@
\nonum\notoc\section{Resumo}
% Apesar de ser um parágrafo, o Resumo
% não costuma ter indentação.
-\noindent \lipsum[1]
+\noindent \lipsum[1]\Enter
Palavras-chave: Palavra-chave A. Palavra-chave B. Palavra-chave C.
\newpage
@@ -276,7 +276,7 @@
% ================================================
\nonum\notoc\section{Abstract}
-\noindent \lipsum[1]
+\noindent \lipsum[1]\Enter
Keywords: Keyword A. Keyword B. Keyword C.
\newpage
@@ -429,47 +429,23 @@
\begin{subplace}
\chemfig{H-C(-[2]H)(-[6]H)-C(-[2]H)(-[6]H)-O-H}
\end{subplace}
- \\ \null \hfil
- \sublegend[circ]{\raggedright Amplificador não-inversor completo} \label{circ:am}
+ \vadjust{\kern\baselineskip}\\ \null \hfil
+ \sublegend[circ]{\raggedright Fonte de tensão $V$ e dois resistores $R_1$ e $R_2$ ligados em paralelo.} \label{circ:am}
\subsrc\me
\begin{subplace}
- \begin{circuitikz}[american,scale=.5]
- % Fonte de sinal
- \draw (0,0) node[ground]{} to[sV, l_=$V_\text{in}$] (0,2)
- to[R, l=$R_\text{in}$] (2,2)
- to[short] (3,2);
+ \begin{circuitikz}[scale=.7]
+ \draw
+ (0,0) to[battery1, l=$V$] (0,4)
+ to[short] (2,4)
+ to[R, l=$R_1$] (2,2)
+ -- (2,0)
+ -- (0,0);
- % Entrada não-inversora (+)
- \draw (3,2) to[short] (4,2)
- to[short] (4,1.5)
- to[short] (5,1.5);
-
- % Amplificador operacional
- \draw (5,0) node[op amp, noinv input up, anchor=+] (opamp) {};
-
- % Entrada inversora (-)
- \draw (4,0) to[R, l=$R_1$] (4,-1.5)
- to[R, l=$R_2$] (4,-3)
- node[ground]{};
- \draw (4,0) -- (opamp.-);
-
- % Ligação da entrada não-inversora ao op amp
- \draw (5,1.5) -- (opamp.+);
-
- % Saída do op amp
- \draw (opamp.out) to[short, -*] ++(2,0)
- coordinate (vout) node[right] {$V_\text{out}$}
- to[R, l=$R_L$] ++(0,-2)
- node[ground]{};
-
- % Realimentação
- \draw (vout) |- (4,-1.5);
-
- % Fontes de alimentação do amp op
- \draw (opamp.up) to[short] ++(0,0.5) node[vcc]{+Vcc};
- \draw (opamp.down) to[short] ++(0,-0.5) node[vee]{--Vcc};
-
- \end{circuitikz}
+ \draw
+ (2,4) to[short] (4,4)
+ to[R, l=$R_2$] (4,0)
+ -- (2,0);
+ \end{circuitikz}
\end{subplace}
\hfil
\sublegend[a]{Exemplo} \label{a:exemplo}
@@ -483,7 +459,7 @@
return $t$
\end{pseudo}
\end{subplace}
- \\ \hfil
+ \vadjust{\kern\baselineskip}\\ \null \hfil
\sublegend[d]{Exemplo em 3D} \label{d:exemplo}
\subsrc\me
\begin{subplace}
@@ -515,16 +491,16 @@
\section{Alíneas}
-\lipsum[1][1-5]
+\lipsum[1][1-5]:
\begin{topics}
- \item \lipsum[1][1]
+ \item \lipsum[1][1]:
\begin{topics}
- \item \lipsum[1][1]
- \item \lipsum[1][1]
+ \item \lipsum[1][1];
+ \item \lipsum[1][1];
\end{topics}
+ \item \lipsum[1][1];
\item \lipsum[1][1]
- \item \lipsum[1][1]
\end{topics}
\newpage
Modified: trunk/Master/texmf-dist/doc/latex/abntexto/abntexto.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/abntexto/abntexto.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/abntexto/abntexto.tex 2025-08-06 19:41:25 UTC (rev 75993)
+++ trunk/Master/texmf-dist/doc/latex/abntexto/abntexto.tex 2025-08-06 19:41:37 UTC (rev 75994)
@@ -1,6 +1,6 @@
%! Public Domain Software 2022-2025
-%! 2025-07-21
-%! 4.0.1-beta
+%! 2025-08-05
+%! 4.0.2-beta
%! Elayson Abreu
%! abntexto.classe at gmail.com
@@ -47,7 +47,7 @@
\ttfamily
}
-\def\lstanchors{}\edef\bslash{\csstring\\}
+\edef\bslash{\csstring\\}
\def\mytarget#1{\vbox to0pt{\kern-12pt \hypertarget{#1}{}\vss}}
\def\1{`}\def\2{``}
{\catcode`\`=13 \AtBeginDocument{%
@@ -194,7 +194,6 @@
\def\xelatex{\leavevmode\hbox{Xe\LaTeX}}
\def\lualatex{\leavevmode\hbox{Lua\LaTeX}}
\def\me{Elaboração própria.}
-\def\placepos{tbp} % Habilita flutuação.
\def\bibfont{\raggedright\interlinepenalty=10000\singlesp\bibitemsep=\baselineskip}
\appto\textual{
\def\@evenhead{\abntsmall \firstmarks0\hfil\thepage}
@@ -229,7 +228,7 @@
\today
\vskip2in\endgroup
-\noindent\hfil {\Large\ttfamily 4.0.1-beta}
+\noindent\hfil {\Large\ttfamily 4.0.2-beta}
\newpage
\nonum\notoc\section{Sumário}
@@ -325,7 +324,7 @@
O espaçamento é de 1,5 por padrão e pode ser alterado com os atalhos \^`\singlesp` e \^`\onehalfsp` que alternam para espaçamento simples e de 1,5, respectivamente\footnote{O \type{\\doublesp} está obsoleto.}. A fórmula desses comandos foi atualizada, portanto documentos com versões antigas do `abntexto` terão o \emph{layout} alterado.
-Nesta versão, \^`\spacing` está obsoleto porque esse comando ainda usa a fórmula antiga. Além disso, ele tem uma limitação: só pode ser usado após um seletor de tamanho, porque tais seletores redefinem `\baselineskip` diretamente. Por exemplo, `\abntsmall\spacing{<fator>}` é correto, porém `\spacing{<fator>}\abntsmall` é ineficaz. Essa limitação não existe ao usar os reimplementados `\singlesp` e `\onehalf` de forma que tanto `\singlesp\onehalfsp` quanto `\onehalfsp\singlesp` produzem o mesmo efeito.
+Nesta versão, `\spacing` está obsoleto porque esse comando ainda usa a fórmula antiga. Além disso, ele tem uma limitação: só pode ser usado após um seletor de tamanho, porque tais seletores redefinem `\baselineskip` diretamente. Por exemplo, `\abntsmall\spacing{<fator>}` é correto, porém `\spacing{<fator>}\abntsmall` é ineficaz. Essa limitação não existe ao usar os reimplementados `\singlesp` e `\onehalf` de forma que tanto `\singlesp\onehalfsp` quanto `\onehalfsp\singlesp` produzem o mesmo efeito.
\section{\emph{Layout}}
@@ -488,7 +487,7 @@
\section{Áreas de legenda\label{sec:area-de-legenda}}
-Use o ambiente \^`place` para inserir áreas de legenda. Ele substitui integralmente os ambientes `figure` e `table` , bem como o comando `\caption`, não suportados pela classe. Além disso, tem-se \^`\legend`\nobreak`{<tipo>}{<legenda>}` para titular; \^`\src`\nobreak`{<fonte>}` (\emph{source}) para inserir a fonte como mostrado em \ref{cd:place}. Porém, existem condições: `place` deve constar em último lugar e `\label` deve suceder `\legend`.
+Use o ambiente \^`place` para inserir áreas de legenda. Ele substitui integralmente os ambientes `figure` e `table`, bem como o comando `\caption`, não suportados pela classe. Além disso, tem-se \^`\legend`\nobreak`{<tipo>}{<legenda>}` para titular; \^`\src`\nobreak`{<fonte>}` (\emph{source}) para inserir a fonte como mostrado em \ref{cd:place}. Porém, existem condições: `place` deve constar em último lugar e `\label` deve suceder `\legend`.
\legend{code}{Áreas de legenda}
\src\me
@@ -963,7 +962,7 @@
\def\thecodesection{\arabic{codesection}}
\def\thecodesubsection{\thecodesection.\arabic{codesubsection}}
\edef\toclevel at codesection{\mainseclevel}
-\edef\toclevel at codesubsection{\numexpr\mainseclevel-1\relax}
+\edef\toclevel at codesubsection{\the\numexpr\mainseclevel-1\relax}
\appto\hooktocsection{\def\extleaders{}%
\edef\savedskips{\rightskip=\the\rightskip \parfillskip=\the\parfillskip\relax}}
@@ -998,6 +997,7 @@
language = [latex]tex,
texcs = {\directlua{for k,v in pairs(tex.primitives())
do tex.print(k, v.. ',')end}},
+ deletetexcs = {end}
}}
\lstset{
Added: trunk/Master/texmf-dist/tex/latex/abntexto/abntexto-3-2-1-beta.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/abntexto/abntexto-3-2-1-beta.cls (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/abntexto/abntexto-3-2-1-beta.cls 2025-08-06 19:41:37 UTC (rev 75994)
@@ -0,0 +1,907 @@
+%! Public Domain Software
+%! 2024-12-29
+%! 3.2.1-beta
+%! Elayson Abreu
+%! abntexto.classe at gmail.com
+
+%! RECOMENDAÇÕES
+%! PRÉ-CONFIGURAÇÕES
+%! FONTES
+%! LAYOUT
+%! SUMÁRIO
+%! SECIONAMEMTO
+%! CITAÇÕES
+%! ALÍNEAS
+%! TABELAS
+%! ÁREAS DE LEGENDA
+%! NOTAS DE RODAPÉ
+%! IDENTIFICAÇÃO DO TRABALHO
+%! A VÍRGULA COMO SEPARADOR DECIMAL
+%! INICIALIZAÇÃO
+
+% \sec RECOMENDAÇÕES
+
+% Macros internas não devem 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, |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, carregando a classe |article| e os únicos pacotes do |abntexto|.
+
+% \begin{code}
+\NeedsTeXFormat{LaTeX2e}
+
+\ProvidesClass{abntexto}[2024-12-29 3.2.1-beta Preparation of works in ABNT standards]
+
+\LoadClass{article}
+\RequirePackage{geometry}
+\RequirePackage{graphicx}
+\RequirePackage{csquotes}
+% \end{code}
+
+% Um atalho para |\ClassError|.
+
+% \begin{code}
+\def\tnba at error#1{\ClassError{abntexto}{#1}{}}
+% \end{code}
+
+% Condicionais para identificação da extensão TeX.
+
+% \begin{code}
+\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
+% \end{code}
+
+% \sec FONTE TIPOGRÁFICA
+
+% O tamanho 12\,pt foi definido ao final deste manual e é o tamanho padrão da classe. Com ele foi definido um tamanho menor |\small|.
+
+% \begin{code}
+\def\sizedef#1#2#3#4{\DeclareRobustCommand#1{\fontsize{#2}{#3}\selectfont#4\relax}}
+
+\def\spacing#1{\def\currspacing{#1}%
+ \@tempdima=\f at size pt \baselineskip=#1\@tempdima \ignorespaces
+}
+
+\AddToHook{begindocument}{%
+ \@tempdima=\f at size pt \baselineskip=\currspacing\@tempdima \relax
+}
+
+\def\singlesp{\baselineskip=\normalbaselineskip}
+\def\onehalfsp{\spacing{1.5}}
+\def\doublesp{\spacing{2}}
+% \end{code}
+
+% \sec \emph{LAYOUT}
+
+% O estilo de página |\pretextual| omite a numeração de página e desliga o modo |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.
+
+% A instrução |\textual| põe a numeração de página no topo direito nas páginas ímpares e no topo esquerdo em páginas pares. Além disso, |twoside| vai espelhar as margens horizontais.
+
+% Ambos |\pretextual| e |\textual| são iniciados automaticamente.
+
+% O comando |\eletroniclayout| é útil para leitura do trabalho em {\em display} digital.
+
+% Por algum motivo, |\newgeometry| reseta |\baselineskip| e |\parindent|, então temos de repetir estas instruções.
+
+% \begin{code}
+\def\onesidelayout{%
+ \newgeometry{
+ twoside=false,
+ left = 3cm,
+ top = 3cm,
+ right = 2cm,
+ bottom = 2cm
+ }
+}
+\def\twosidelayout{%
+ \newgeometry{
+ twoside=true,
+ left = 3cm,
+ top = 3cm,
+ right = 2cm,
+ bottom = 2cm
+ }%
+}
+\def\eletroniclayout{%
+ \newgeometry{
+ twoside=false,
+ left = 2.5cm,
+ top = 3cm,
+ right = 2.5cm,
+ bottom = 2cm
+ }%
+}
+
+\def\pretextual{%
+ \onesidelayout
+ \spacing{1.5}%
+ \let\@oddhead=\empty
+ \let\@evenhead=\empty
+ \let\@oddfoot=\empty
+ \let\@evenfoot=\empty
+}
+\def\textual{%
+ \twosidelayout
+ \spacing{1.5}%
+ \parindent=1.5cm
+ \def\@oddhead{\hfil\small\thepage}%
+ \def\@evenhead{\small\thepage\hfil}%
+}
+% \end{code}
+
+% \sec SUMÁRIO
+
+% Aqui, a macro |\extline| foi baseada em |\@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.
+
+% \begin{code}
+\def\extpagenumwidth{1.55em}
+\def\extrightmargin{2.55em}
+
+\def\extline#1#2#3#4#5{%
+ \begingroup
+ \parindent=0pt \leftskip=#1\relax
+ \rightskip=\extrightmargin\relax \parfillskip=-\rightskip
+ #3{\global\advance\leftskip#2\relax \hskip-#2\relax #4}%
+ \nobreak\extleaders\nobreak
+ \hbox to\extpagenumwidth{\hfil #5\kern-1pt\kern1pt}\nbpar
+ \endgroup
+ \global\leftskip=0pt
+}
+\def\extleaders{\leaders\hbox{$\mathsurround=0pt \mkern4.5mu\hbox{.}\mkern4.5mu$}\hfill}
+
+\def \l at part {\addpenalty{-300}\addvspace{2.25em plus1pt}%
+ \extline{0pt}{\toclabelwidth}{\def\extleaders{\hfil}\tocpartfont}}
+\def \l at chapter {\addpenalty{-300}\addvspace{1em plus1pt}%
+ \extline{0cm}{\toclabelwidth}{\def\extleaders{\hfil}\tocchapterfont}}
+\def \l at section {\addpenalty{-300}\addvspace{1em plus1pt}%
+ \extline{0pt}{\toclabelwidth}{\def\extleaders{\hfil}\tocsectionfont}}
+\def \l at subsection {\vskip0pt plus.2pt
+ \extline{0pt}{\toclabelwidth}{\tocsubsectionfont}}
+\def \l at subsubsection {\vskip0pt plus.2pt
+ \extline{0pt}{\toclabelwidth}{\tocsubsubsectionfont}}
+\def \l at paragraph {\vskip0pt plus.2pt
+ \extline{0pt}{\toclabelwidth}{\tocparagraphfont}}
+\def \l at subparagraph {\vskip0pt plus.2pt
+ \extline{0pt}{\toclabelwidth}{\tocsubparagraphfont}}
+
+\def\toclabelbox#1{\hbox to\toclabelwidth{#1\hss}}
+% \end{code}
+
+% \sec SECIONAMENTO
+
+% Nesta parte estão definidos os comandos secionais. Nenhum destes comandos são internos, caso o leitor queira redefiní-los.
+
+% O comando |\hangfrom| é oriundo do kernel. Ele vai ser útil na formatação das seções.
+
+% A ideia de usar |\nonum| e |\notoc| ao invés de * vem do Op\TeX\ (muitas outras implementações aqui foram inspiradas nele).
+
+% \begin{code}
+\newif\ifnotoc
+\newif\ifnonum
+
+\let\hangfrom=\@hangfrom
+\def\nbpar{{\interlinepenalty=10000\par}}
+\def\trytextual{\textual \let\textual=\relax}
+\def\nonum{\global\nonumtrue}
+\def\notoc{\global\notoctrue}
+\def\resetnonumnotoc{\global\notocfalse \global\nonumfalse}
+
+\newcount\countseclevel
+
+\newcount\countpart
+\newcount\countchapter
+\newcount\countsection
+\newcount\countsubsection
+\newcount\countsubsubsection
+\newcount\countparagraph
+\newcount\countsubparagraph
+
+\def\thepart{\@Roman\countpart}
+\def\thechapter{\the\countchapter}
+\def\thesection{\the\countsection}
+\def\thesubsection{\thesection .\the\countsubsection}
+\def\thesubsubsection{\thesubsection .\the\countsubsubsection}
+\def\theparagraph{\thesubsubsection .\the\countparagraph}
+\def\thesubparagraph{\theparagraph .\the\countsubparagraph}
+
+\def\recountchapter {\countsection=0 \recountsection}
+\def\recountsection {\countsubsection=0 \recountsubsection}
+\def\recountsubsection {\countsubsubsection=0 \recountsubsubsection}
+\def\recountsubsubsection {\countparagraph=0 \recountparagraph}
+\def\recountparagraph {\countsubparagraph=0 }
+
+\def\printpart#1{%
+ \begingroup
+ \centering\huge\bfseries Parte \thepart
+ \vskip20pt
+ \Huge\bfseries #1\nbpar
+ \endgroup
+}
+
+\def\printchapter#1{%
+ \begingroup
+ \raggedright\huge\bfseries
+ \ifnonum \else Capítulo \thechapter \vskip20pt \fi
+ \Huge\bfseries #1\nbpar
+ \endgroup
+}
+\def\printnonumchapter#1{{\centering\Huge\bfseries{#1}\par}}
+
+\def\printsection#1{{%
+ \hangfrom{\sectionfont\thesection\quad}%
+ \sectionfont{#1}\nbpar
+}}
+\def\printnonumsection#1{{\centering\sectionfont{#1}\par}}
+
+\def\printsubsection#1{{%
+ \hangfrom{\subsectionfont\thesubsection\quad}%
+ \subsectionfont{#1}\nbpar
+}}
+\def\printsubsubsection#1{{%
+ \hangfrom{\subsubsectionfont\thesubsubsection\quad}%
+ \subsubsectionfont{#1}\nbpar
+}}
+\def\printparagraph#1{{%
+ \hangfrom{\paragraphfont\theparagraph\quad}%
+ \paragraphfont{#1}\nbpar
+}}
+\def\printsubparagraph#1{{%
+ \hangfrom{\subparagraphfont\thesubparagraph\quad}%
+ \subparagraphfont{#1}\nbpar
+}}
+% \end{code}
+
+% A instrução |\setlabel| ensina a forma como |\label|'s devem ser referenciados. O comando |\setlabel| será útil em outros contextos.
+
+% As referências cruzadas (\emph{cross ref}) serão impressas por meio de |\ref| conforme |\cfpart|, |\cfchapter| etc. O leitor pode querer redefiní-los.
+
+% \begin{code}
+\def\setlabel#1{\def\@currentlabel{#1}}
+
+\def\cfpart {parte\,\thepart}
+\def\cfchapter {capítulo\,\thechapter}
+\def\cfsection {secão\,\thesection}
+\def\cfsubsection {subseção\,\thesubsection}
+\def\cfsubsubsection {subseçao\,\thesubsubsection}
+\def\cfparagraph {subseçao\,\theparagraph}
+\def\cfsubparagraph {subseçao\,\thesubparagraph}
+% \end{code}
+
+% Por meio de |\trytextual|, a instrução |\textual| é iniciada automaticamente na primeira chamada de |\section|, |\chapter| ou |\part|, conforme o nível secional principal.
+
+% É mais provável que o usuário queira redefinir comandos como |\printsection|, |\printsubsection| ao invés de seus invólucros maiores, neste caso, |\section| e |\subsection|.
+
+% \begin{code}
+\def\partlevel {-1}
+\def\chapterlevel {0}
+\def\sectionlevel {1}
+\def\subsectionlevel {2}
+\def\subsubsectionlevel {3}
+\def\paragraphlevel {4}
+\def\subparagraphlevel {5}
+
+\def\part#1{\ifnonum\else\cleardoublepage\fi \ifnonum\else\trytextual\fi
+ \leavevmode\vfil
+ \ifnonum \else
+ \global\advance\countpart by1
+ \fi
+ \countseclevel=\partlevel\relax \ifnonum \else \setlabel\cfpart \fi
+ \ifnotoc \else
+ \addtoext{toc}{part}{\ifnonum \else \protect\toclabelbox{\thepart}\fi #1}%
+ \fi
+ \printpart{#1}%
+ \markpart{#1}%
+ \resetnonumnotoc
+ \newpage
+}
+\def\chapter#1{\ifnonum\else\cleardoublepage\fi \ifnonum\else\trytextual\fi
+ \leavevmode\vskip\abovechapter\relax
+ \ifnonum \else
+ \global\advance\countchapter by1 {\globaldefs=1 \recountchapter}%
+ \fi
+ \countseclevel=\chapterlevel\relax \ifnonum \else \setlabel\cfchapter \fi
+ \ifnotoc \else
+ \addtoext{toc}{chapter}{\ifnonum \else \protect\toclabelbox{\thechapter}\fi #1}%
+ \fi
+ \ifnonum
+ \printnonumchapter{#1}\else
+ \printchapter{#1}%
+ \fi
+ \markchapter{#1}%
+ \resetnonumnotoc
+ \par\nobreak \vskip\belowchapter\relax
+}
+\def\section#1{\ifnonum\else\trytextual\fi \addpenalty{-300}\addvspace\abovesection
+ \ifnonum \else
+ \global\advance\countsection by1 {\globaldefs=1 \recountsection}%
+ \fi
+ \countseclevel=\sectionlevel\relax \ifnonum \else \setlabel\cfsection \fi
+ \ifnotoc \else
+ \addtoext{toc}{section}{\ifnonum \else \protect\toclabelbox{\thesection}\fi #1}%
+ \fi
+ \ifnonum
+ \printnonumsection{#1}\else
+ \printsection{#1}%
+ \fi
+ \marksection{#1}%
+ \resetnonumnotoc
+ \par\nobreak \vskip\belowsection\relax % Esse \par é necessário.
+}
+\def\subsection#1{\addpenalty{-300}\addvspace\abovesubsection
+ \global\advance\countsubsection by1 {\globaldefs=1 \recountsubsection}%
+ \countseclevel=\subsectionlevel\relax \setlabel\cfsubsection
+ \addtoext{toc}{subsection}{\protect\toclabelbox{\thesubsection}#1}%
+ \printsubsection{#1}%
+ \marksubsection{#1}%
+ \par\nobreak \vskip\belowsubsection\relax
+}
+\def\subsubsection#1{\addpenalty{-300}\addvspace\abovesubsubsection
+ \global\advance\countsubsubsection by1 {\globaldefs=1 \recountsubsubsection}%
+ \countseclevel=\subsubsectionlevel\relax \setlabel\cfsubsubsection
+ \addtoext{toc}{subsubsection}{\protect\toclabelbox{\thesubsubsection}#1}%
+ \printsubsubsection{#1}%
+ \par\nobreak \vskip\belowsubsubsection\relax
+}
+\def\paragraph#1{\addpenalty{-300}\addvspace\aboveparagraph
+ \global\advance\countparagraph by1 {\globaldefs=1 \recountparagraph}%
+ \countseclevel=\paragraphlevel\relax \setlabel\cfparagraph
+ \addtoext{toc}{paragraph}{\protect\toclabelbox{\theparagraph}#1}%
+ \printparagraph{#1}%
+ \par\nobreak \vskip\belowparagraph\relax
+}
+\def\subparagraph#1{\addpenalty{-300}\addvspace\abovesubparagraph
+ \global\advance\countsubparagraph by1 {\globaldefs=1 \recountsubparagraph}%
+ \countseclevel=\subparagraphlevel\relax \setlabel\cfsubparagraph
+ \addtoext{toc}{subparagraph}{\protect\toclabelbox{\thesubparagraph}#1}%
+ \printsubparagraph{#1}%
+ \par\nobreak \vskip\belowsubparagraph\relax
+}
+% \end{code}
+
+% O |\@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, |\makeext| parece ter mais valor semântico.
+
+% Comandos como |\printbibliography| e |\printglossaries| já vêm com título embutido. Mas este título precisa estar inserido na macro secional principal, |\section| ou |\chapter|, dependendo de |\usechapters|/|\useparts| estar ativado ou não. Por este motivo foi definido o ambiente |corrprint|.
+
+% \begin{code}
+\def\makeext#1{\@starttoc{#1}}
+\def\maketoc{\makeext{toc}}
+
+\def\corrprint{\begingroup
+ \def\tmp{section}%
+ \ifx\mainsecname\tmp
+ \let\origsection=\section
+ \def\chapter##1##2{\nonum \origsection {##2}}%
+ \def\section##1##2{\nonum \origsection {##2}}%
+ \else
+ \edef\mainsecname{orig\mainsecname}%
+ \let\origchapter=\chapter
+ \let\origsection=\section
+ \def\chapter##1##2{\nonum \csname\mainsecname\endcsname {##2}}%
+ \def\section##1##2{\nonum \csname\mainsecname\endcsname {##2}}%
+ \fi
+}
+\def\endcorrprint{\par\endgroup}
+
+\def\mainsecname{section}
+\def\mainseclevel{\sectionlevel}
+\def\maintocfont{\tocsectionfont}
+
+\def\usechapters{%
+ \def\l at section{\extline{0pt}{\toclabelwidth}{\tocsectionfont}}%
+ \def\thesection{\thechapter.\the\countsection}%
+ \def\mainsecname{chapter}%
+ \def\mainseclevel{\chapterlevel}%
+ \def\maintocfont{\tocchapterfont}%
+}
+\def\useparts{\usechapters
+ \def \l at chapter {\addpenalty{-300}\addvspace{1em plus1pt}%
+ \extline{0pt}{\toclabelwidth}{\tocchapterfont}}%
+}
+% \end{code}
+
+% Quando |\usechapters| está ativo, o LaTeX, por algum motivo, exige a criação do contador |\c at chapter|.
+
+% \begin{code}
+\newcount\c at chapter
+
+\AddToHook{begindocument}{%
+ \pdfstringdefDisableCommands{\def\toclabelbox#1{#1 }}%
+}
+
+\def\markpart#1{}
+\def\markchapter#1{}
+\def\marksection#1{\markboth
+ {\MakeUppercase{\thesection\quad #1}}%
+ {}%
+}
+\def\marksubsection#1{\markright{\MakeUppercase{\thesubsection\quad #1}}}
+% \end{code}
+
+% Os comandos a seguir são usados pelo |hyperref.sty| na criação de \emph{bookmarks} em PDFs.
+
+% \begin{code}
+\def\toclevel at part {\partlevel}
+\def\toclevel at chapter {\chapterlevel}
+\def\toclevel at section {\sectionlevel}
+\def\toclevel at subsection {\subsectionlevel}
+\def\toclevel at subsubsection {\subsubsectionlevel}
+\def\toclevel at paragraph {\paragraphlevel}
+\def\toclevel at subparagraph {\subparagraphlevel}
+
+\def\toclevel at appendix {\mainseclevel}
+\def\toclevel at annex {\mainseclevel}
+% \end{code}
+
+% A definição de |\addtoext| depende de o |hyperref.sty| estar presente ou não.
+
+% \begin{code}
+\def\addtoext#1#2#3{\noindent % Esse \noindent é necessário.
+ \setcounter{section at level}{\countseclevel}%
+ \NR at gettitle{#3}%
+ \Hy at MakeCurrentHrefAuto{section*}%
+ \setlength{\Hy at SectionHShift}{0pt}%
+ \Hy at SectionAnchorHref{\@currentHref}%
+ \addcontentsline{#1}{#2}{#3}%
+}
+
+\AddToHook{begindocument/before}{%
+ \@ifpackageloaded{hyperref}{}{%
+ \def\addtoext#1#2#3{\addcontentsline{#1}{#2}{#3}}%
+ \let\pdfstringdefDisableCommands=\@gobble
+ }%
+}
+% \end{code}
+
+% Aqui estão definidos |\appendix| e |\annex|.
+
+% \begin{code}
+\newcount\countappendix
+\newcount\countannex
+
+\def\theappendix{\@Alph\countappendix}
+\def\theannex{\@Alph\countannex}
+
+\def\appendixlabelbox#1{\hbox to\appendixlabelwidth{Apêndice~#1~---\hss}}
+\def\annexlabelbox#1{\hbox to\annexlabelwidth{Anexo~#1~---\hss}}
+
+\AddToHook{begindocument}{\pdfstringdefDisableCommands{%
+ \def\appendixlabelbox#1{Apêndice #1 }%
+ \def\annexlabelbox#1{Anexo #1 }%
+}}
+
+\def \l at appendix {\addpenalty{-300}\addvspace{1em plus1pt}%
+ \extline{0pt}{\appendixlabelwidth}{\def\extleaders{\hfil}\maintocfont}}
+\def \l at annex {\addpenalty{-300}\addvspace{1em plus1pt}%
+ \extline{0pt}{\annexlabelwidth}{\def\extleaders{\hfil}\maintocfont}}
+
+\def\cfappendix{Apêndice~\theappendix}
+\def\cfannex{Anexo~\theannex}
+
+\def\appendix#1{\newpage \global\advance\countappendix by1
+ \addtoext{toc}{appendix}{\protect\appendixlabelbox{\theappendix}#1}%
+ \setlabel\cfappendix
+ \par\nointerlineskip
+ \begingroup
+ \def\abovesection{0pt}%
+ \nonum\notoc \csname\mainsecname\endcsname {Apêndice~\theappendix~---~#1}%
+ \endgroup
+}
+\def\annex#1{\newpage \global\advance\countannex by1
+ \addtoext{toc}{annex}{\protect\annexlabelbox{\theannex}#1}%
+ \setlabel\cfannex
+ \par\nointerlineskip
+ \begingroup
+ \def\abovesection{0pt}%
+ \nonum\notoc \csname\mainsecname\endcsname {Anexo~\theannex~---~#1}%
+ \endgroup
+}
+% \end{code}
+
+% \sec CITAÇÕES
+
+% O comando |\enquote| é fornecido pelo pacote |csquotes|, carregado pela classe.
+
+% \begin{code}
+\long\def\Enquote#1{\par\ifdim\lastskip>0pt \vskip-\lastskip \fi
+ \vskip\baselineskip
+ {\noindent\leftskip=4cm \small \ignorespaces#1\unskip \par}%
+ \vskip\baselineskip
+}
+% \end{code}
+
+% \sec ALÍNEAS
+
+% Estas linhas não foram baseadas no ambiente |list| do LaTeX, portanto não podem ser personalizadas por pacotes como |enumitem|, por exemplo.
+
+% \begin{code}
+\newcount\counttopicsdepth
+\newcount\counttopics
+\newcount\countsubtopics
+
+\def\thetopics{\@alph\counttopics}
+\def\thesubtopics{\the\countsubtopics}
+
+\def\topicslabeli{\thetopics)}
+\def\topicslabelii{---}
+
+\def\cftopics{alínea~\thetopics)}
+\def\cfsubtopics{subalínea~\thetopics\thesubtopics}
+
+\def\topics{\par \advance\counttopicsdepth by1
+ \ifnum\counttopicsdepth=1 \advance\leftskip\parindent \fi
+ \advance\leftskip\topicslabelwidth
+ \edef\topicsmakelabel{\expandafter\noexpand
+ \csname topicslabel\romannumeral\counttopicsdepth\endcsname}%
+ \let\item=\topicsitem
+ \expandafter\def \expandafter\@esphack \expandafter{\@esphack\ignorespaces}%
+}
+\def\endtopics{\par}
+
+\def\topicsitem{\par
+ \ifnum\counttopicsdepth=1
+ \advance\counttopics by1 \setlabel\cftopics
+ \else
+ \advance\countsubtopics by1 \setlabel\cfsubtopics
+ \fi
+ \noindent \kern-\topicslabelwidth
+ \hbox to\topicslabelwidth{\topicsmakelabel\hfil}%
+ \ignorespaces
+}
+% \end{code}
+
+% \sec ÁREAS DE LEGENDA
+
+% \begin{code}
+\def\@nameedef#1{\expandafter\edef\csname#1\endcsname}
+
+\def\definelegendplace#1#2#3#4{\expandafter\newcount\csname count#1\endcsname
+ \@namedef{#1name}{#2}%
+ \@nameedef{the#1}{\noexpand\the\csname count#1\endcsname}%
+ \@nameedef{cf#1}{\unexpanded{#3}\expandafter\noexpand\csname the#1\endcsname}%
+ \@namedef{#1ext}{#4}%
+ \@nameedef{l@#4i}{\noexpand\extline{0pt}%
+ {\expandafter\noexpand\csname #4labelwidth\endcsname}%
+ {\expandafter\noexpand\csname #4ifont\endcsname}}%
+ \@namedef{#4labelwidth}{5.4em}%
+ \@nameedef{#4labelbox}##1{\hbox to\expandafter\noexpand\csname #4labelwidth\endcsname{#2~##1~---\hss}}%
+ \AddToHook{begindocument}{%
+ \pdfstringdefDisableCommands{\@namedef{#4labelbox}##1{##1 }}%
+ }%
+ \@namedef{#4ifont}{\maintocfont}%
+ \@namedef{make#4}{\makeext{#4}}%
+}
+% \end{code}
+
+% O valor de |\placewidth| foi configurado após |\begin{document}|, pois o valor de |\linewidth| durante e depois do preâmbulo não são necessariamente iguais.
+
+% \begin{code}
+\newdimen\placewidth \AddToHook{begindocument}{\placewidth=.43\linewidth}
+\newdimen\savedplacewidth
+
+\def\printlegend#1{\setbox0=\hbox{\legendlabel#1}%
+ \hfil \vtop{\hsize=\ifdim\wd0>\legendmaxwidth \legendmaxwidth\else\wd0 \fi
+ \singlesp
+ \hangfrom\legendlabel #1%
+ \par\xdef\savedprevdepth{\the\prevdepth}%
+ }%
+ \printlegendA
+ \par\nointerlineskip \nobreak\vskip\medskipamount
+}
+\def\printlegendA{%
+ \def \@tempa{\expandafter\noexpand \csname\csname\savedplace ext\endcsname labelbox\endcsname}%
+ \edef\@tempa{\noexpand\addtoext
+ {\csname \savedplace ext\endcsname}%
+ {\csname \savedplace ext\endcsname i}%
+ {\noexpand\protect \@tempa {\thelegend}\noexpand\savedlegend}%
+ }%
+ \@tempa
+}
+\def\printplace#1{\setbox0=\hbox{\ignorespaces#1\unskip}%
+ \global\savedplacewidth=\wd0
+ \hfil \unhbox0
+ \par\nointerlineskip \nobreak\vskip\medskipamount
+}
+\def\printsrc#1{\hfil \vbox{\hsize=\savedplacewidth
+ \raggedright\footnotesize\singlesp
+ \hangfrom\srclabel #1%
+}}
+
+\def\place#1{\par \vskip\aboveplace\relax
+ \begingroup
+ \parindent=0pt\parskip=0pt
+ \ifx\empty\savedplace\else \printlegend\savedlegend \fi
+ \printplace{#1}%
+ \printsrc\savedsrc
+ \par\endgroup
+ \resetplace
+ \vskip\belowplace\relax
+}
+\def\subplace#1{\leavevmode
+ \vtop{\hsize=\placewidth \linewidth=\hsize
+ \parindent=0pt\parskip=0pt
+ \ifx\empty\savedplace\else \printlegend\savedlegend \fi
+ \printplace{#1}%
+ \printsrc\savedsrc
+ \par\xdef\savedprevdepth{\the\prevdepth}%
+ }%
+ \resetplace
+ \ignorespaces
+}
+\def\resetplace{%
+ \let\savedplace=\empty
+ \let\savedlegend=\empty
+ \let\savedsrc=\empty
+ \setlabel{}%
+}
+
+\def\legend#1#2{\ifdim\lastskip>0pt \vskip-\lastskip\fi
+ \def\savedplace{#1}%
+ \def\savedlegend{#2}%
+ \ifx\empty#1\else
+ \global\advance\csname count#1\endcsname by1
+ \setlabel{\csname cf#1\endcsname}%
+ \fi
+ \ignorespaces
+}
+\def\sublegend#1#2{\ifdim\lastskip>0pt \vskip-\lastskip\fi
+ \def\savedplace{#1}%
+ \def\savedlegend{#2}%
+ \ifx\empty#1\else
+ \global\advance\@tempcnta by1
+ \setlabel{\csname cf#1\endcsname \@alph\@tempcnta}%
+ \fi
+ \ignorespaces
+}
+
+\def\src#1{\ifdim\lastskip>0pt \vskip-\lastskip\fi
+ \ifx\empty#1\else \def\savedsrc{#1}\fi
+ \ignorespaces
+}
+
+\def\legendname{\csname \savedplace name\endcsname}
+\def\thelegend{\the\csname count\savedplace\endcsname}
+
+\def\savedlegend{}
+\def\savedplace{}
+\def\savedsrc{}
+
+\newenvironment{multiplace}{\par \ifdim\lastskip>0pt \vskip-\lastskip \fi
+ \vskip\aboveplace\relax
+ \ifx\savedlegend\empty \else
+ \printlegend\savedlegend \par\prevdepth=\savedprevdepth\relax
+ \fi
+ \noindent
+ \def\legendmaxwidth{\placewidth}%
+ \@tempcnta=0 \let\legend=\sublegend \let\legendlabel=\sublegendlabel
+ \let\printlegendA=\relax
+ \ignorespaces
+}{%
+ \unskip
+ \vskip\belowplace\relax
+ \par\prevdepth=\savedprevdepth\relax
+}
+% \end{code}
+
+% O suporte para tabelas que se partem entre páginas usando |longtable.sty| ainda está em desenvolvimento.
+
+% \begin{code}
+\AddToHook{begindocument}{%
+ \def\LT at makecaption#1#2#3{\LT at mcol{\LT at cols}{c}{%
+ \hbox to\z@{\hss
+ \parbox[t]{\legendmaxwidth}{\def\savedplace{table}\global\setlabel\cftable
+ \legendlabel#3\endgraf\vskip\baselineskip}%
+ \hss}%
+ }}%
+ \def\LT at c@ption#1[#2]#3{%
+ \LT at makecaption#1\fnum at table{#3}%
+ \def\@tempa{#2}%
+ \ifx\@tempa\@empty\else
+ {\let\\\space
+ \addtoext{lot}{lofi}{\protect\lotlabelbox{\the\counttable}#2}}%
+ \fi
+ }%
+}
+
+\AddToHook{begindocument}{\@ifpackageloaded{longtable}{\LTpre=\baselineskip \LTpost=\baselineskip}{}}
+
+\def\longlegend#1{%
+ \caption{#1} \\ \hline \endfirsthead
+ \caption*{#1}\\ \multicolumn{\LT at cols}{r}{\small (continuação)} \\ \hline \endhead
+}
+\def\longsrc#1{\LT at mcol{\LT at cols}{c}{%
+ \hbox to\z@{\hss \savedplacewidth=\legendmaxwidth
+ \parbox[b]{\legendmaxwidth}{\vskip\medskipamount \printsrc{#1\vskip-\baselineskip}}%
+ \hss}%
+}}
+
+\AddToHook{begindocument}{\let\c at table=\counttable}
+% \end{code}
+
+% \sec NOTAS DE RODAPÉ
+
+% As notas de rodapé também foram modificadas.
+
+% \begin{code}
+\def\@makefnmark{\hbox{\@textsuperscript{\selectfont\@thefnmark}}}
+\def\@makefntext#1{\hangfrom{\@makefnmark\kern2pt}\small #1}
+\def\footnoterule{\kern18pt \hrule width5cm \kern2.6pt }
+% \end{code}
+
+% \sec IDENTIFICAÇÃO DO TRABALHO
+
+% \begin{code}
+\def\Enter{\@ifnextchar[\tnba at Enter{\tnba at Enter[]}}
+\def\tnba at Enter[#1]{\vskip#1\baselineskip}
+
+\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\xindexcardbar\hrule}\vrule}%
+}
+\long\def\indexcardA#1{\hbox spread2cm{\hss\vbox spread2cm{\vss
+ \ttfamily\small\parindent=1em #1%
+ \vss}\hss}%
+}
+
+\def\xindexcardbar{}
+\def\indexcardbar{\def\xindexcardbar{\hrule\kern1cm}}
+
+\def\judgeline#1{{\centering \rule{.7\linewidth}{.6pt}\\ #1\par}\Enter[1.5]}
+% \end{code}
+
+% \sec A VÍRGULA COMO SEPARADOR DECIMAL
+
+% No Brasil e em outro lugares a vírgula é um separador decimal, portanto |$1,2$| deve produzir um resultado diferente de |$1, 2$|, por exemplo.
+
+% As linhas abaixo são uma cópia da implementação do pacote |icomma|.
+
+% \begin{code}
+{\catcode`,=13
+ \gdef,{\futurelet\@let at token\tnba at smartcomma}
+}
+\def\tnba at smartcomma{%
+ \ifx\@let at token\@sptoken \else
+ \ifx\@let at token\space \else \mathord \fi\fi
+ \tnba at mathcomma
+}
+
+\AddToHook{begindocument}{%
+ \mathchardef\tnba at mathcomma=\mathcode`\,%
+ \mathcode`\,="8000
+}
+% \end{code}
+
+% Abaixo está definido um ajuste para que o |hyperref| não crie conflitos com |\MakeUppercase| nas entradas do sumário.
+
+% \begin{code}
+\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
+% \end{code}
+
+% \sec COMANDOS OBSOLETOS
+
+% O |abntexto| emitirá um aviso ou erro caso um destes comandos seja usado.
+
+% \begin{code}
+\def\tnba at undefcmd#1{\def#1{\tnba at error{%
+ O comando "\noexpand#1" não existe mais%
+}}}
+\def\tnba at obscmd#1#2{\def#1{\tnba at error{%
+ O comando "\noexpand#1" é obsoleto, use "\unexpanded{#2}" ao invés%
+}}}
+
+\tnba at undefcmd \extlineshape
+\tnba at undefcmd \advcount
+\tnba at undefcmd \definefontsize
+\tnba at undefcmd \setfontsize
+\tnba at undefcmd \fontsizedef
+\tnba at undefcmd \paper
+\tnba at undefcmd \papersizedef
+\tnba at undefcmd \startseci
+\tnba at undefcmd \startsecii
+\tnba at undefcmd \startseciii
+\tnba at undefcmd \startseciv
+\tnba at undefcmd \startsecv
+\tnba at undefcmd \sectionuppercase
+\tnba at undefcmd \tociuppercase
+
+\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 obscmd \qt \enquote
+\tnba at obscmd \quote \Enquote
+% \end{code}
+
+% \sec INICIALIZAÇÃO
+
+% Aqui o |abntexto| define as configurações padrões.
+
+% \begin{code}
+\sizedef\normalsize{12pt}{14.5pt}{%
+ \abovedisplayskip=12pt plus3pt minus7pt
+ \belowdisplayskip=\abovedisplayskip
+ \abovedisplayshortskip=0pt plus3pt
+ \belowdisplayshortskip=6.5pt plus3.5pt minus3pt
+}
+\sizedef\small{10pt}{12pt}{%
+ \abovedisplayskip=10pt plus2pt minus5pt
+ \belowdisplayskip=\abovedisplayskip
+ \abovedisplayshortskip=0pt plus3pt
+ \belowdisplayshortskip=6pt plus3pt minus3pt
+}
+
+\spacing{1.5}
+
+\geometry{a4paper}
+
+\frenchspacing
+\parindent=0pt
+\parskip=0pt
+
+\def\tocpartfont {\bfseries\MakeUppercase}
+\def\tocchapterfont {\bfseries\MakeUppercase}
+\def\tocsectionfont {\bfseries\MakeUppercase}
+\def\tocsubsectionfont {\itshape}
+\def\tocsubsubsectionfont {\scshape}
+\def\tocparagraphfont {}
+\def\tocsubparagraphfont {}
+
+\def\sectionfont {\bfseries\MakeUppercase}
+\def\subsectionfont {\itshape}
+\def\subsubsectionfont {\scshape}
+\def\paragraphfont {}
+\def\subparagraphfont {}
+
+\def\abovechapter {50pt}
+\def\abovesection {\baselineskip}
+\def\abovesubsection {\baselineskip}
+\def\abovesubsubsection {\baselineskip}
+\def\aboveparagraph {\baselineskip}
+\def\abovesubparagraph {\baselineskip}
+
+\def\belowchapter {40pt}
+\def\belowsection {\baselineskip}
+\def\belowsubsection {\baselineskip}
+\def\belowsubsubsection {\baselineskip}
+\def\belowparagraph {\baselineskip}
+\def\belowsubparagraph {\baselineskip}
+
+\definelegendplace{figure}{Figura}{fig.\,}{lof}
+\definelegendplace{table}{Tabela}{tab.\,}{lot}
+
+\def\legendlabel{\legendname\ \thelegend\ ---~}
+\def\sublegendlabel{(\@alph\@tempcnta)~}
+\def\srclabel{Fonte:~}
+\def\legendmaxwidth{.7\linewidth}
+
+\def\aboveplace{\baselineskip}
+\def\belowplace{\baselineskip}
+
+\def\toclabelwidth{2em}
+\def\lotlabelwidth{5.5em}
+\def\loflabelwidth{5.5em}
+\def\appendixlabelwidth{9.2em}
+\def\annexlabelwidth{7.3em}
+
+\def\topicslabelwidth{4ex}
+% \end{code}
+
+% Se o comando de estilo de página |\pretextual| fosse carregado diretamente, e o usuário quisesse redefiní-lo no preâmbulo, teria de chamar |\pretextual| novamente para que a redefinição tivesse efeito. Sendo assim, para evitar múltiplas chamadas de |\pretextual|, este foi inserido após |\begin{document}|.
+
+% \begin{code}
+\AddToHook{begindocument}{\pretextual}
+
+\endinput
+% \end{code}
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/tex/latex/abntexto/abntexto-3-2-1-beta.cls
___________________________________________________________________
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 2025-08-06 19:41:25 UTC (rev 75993)
+++ trunk/Master/texmf-dist/tex/latex/abntexto/abntexto.cls 2025-08-06 19:41:37 UTC (rev 75994)
@@ -1,6 +1,6 @@
%! Public Domain Software 2022-2025
-%! 2025-07-21
-%! 4.0.1-beta
+%! 2025-08-05
+%! 4.0.2-beta
%! Elayson Abreu
%! abntexto.classe at gmail.com
@@ -43,7 +43,7 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{abntexto}%
- [2025-07-21 4.0.1-beta Preparation of works in ABNT standards]
+ [2025-08-05 4.0.2-beta Preparation of works in ABNT standards]
%. \end{code}
% Estas são as únicas dependências do `abntexto`. Os pacotes `enumitem` e
@@ -134,10 +134,9 @@
% ou tamanho de fonte forem alterados, mais compilações seriam necessárias.
% Diferente da versão em OpTeX, a `\eqbox` nesta classe foi modificada para ter
-% uma sintaxe LaTeX-amigável: `\eqbox[<alinhamento
-% horizontal>]{<rótulo>}{<texto>}`. Os valores para o parâmetro opcional são
-% `l`, `c` ou `r`. Se o parâmetro opcional não for chamado, `l` é usado como
-% padrão \cite{optex}.
+% uma sintaxe LaTeX-amigável: `\eqbox[<alinhamento horizontal>]{<rótulo>}{<texto>}`.
+% Os valores para o parâmetro opcional são `l`, `c` ou `r`. Se o parâmetro
+% opcional não for chamado, `l` é usado como padrão \cite{optex}.
% Na primeira compilação, a instrução `\eqbox` anexa
% `\Xeqbox{<rótulo>}{<largura>}` no arquivo auxilar `.aux` e as caixas são
@@ -251,11 +250,21 @@
% significado de `\small` será igual ao de `\abntsmall` para compatibilidade com
% documentos antigos.
+% O `\setamounts` configura `\<value>amount`s conforme o tamannho de fonte.
+
% \begin{code}
+\def\hooknormalsize{\setamounts}
+\def\hookabntsmall{\setamounts}
+\def\setamounts{%
+ \dimen4=\f at size pt
+ \bigskipamount=\dimen4 plus.33333\dimen4 minus.33333\dimen4
+ \medskipamount=.5\dimen4 plus.16666\dimen4 minus.16666\dimen4
+ \smallskipamount=.25\dimen4 plus.08333\dimen4 minus.08333\dimen4
+}
\input{size12.clo}
\def\definesize#1#2#3#4{\DeclareRobustCommand#1{\@setfontsize{#1}{#2}{#3}#4\relax}}
-\definesize\normalsize{12bp}{13.8bp}{} % 13.8 = 12 * 1.15
-\definesize\abntsmall{10bp}{11.5bp}{} % 11.5 = 10 * 1.15
+\definesize\normalsize{12bp}{13.8bp}{\hooknormalsize} % 13.8 = 12 * 1.15
+\definesize\abntsmall{10bp}{11.5bp}{\hookabntsmall} % 11.5 = 10 * 1.15
\def\small{\abntsmall} % Para compatibilidade com versões anteriores da classe.
\normalsize
%. \end{code}
@@ -514,9 +523,7 @@
% \codesection{SUMÁRIO\label{codesec:sumario}}
-% O \`\tocsectionfont`, \`\tocsubsectionfont` e semelhantes foram definidos aqui.
-
-% Aqui, a macro `\extline` foi baseada em `\@dottedtocline`, definida no LaTeX
+% O \`\tocsectionfont`, \`\tocsubsectionfont` e semelhantes foram definidos aqui. A macro `\extline` foi baseada em `\@dottedtocline`, definida no LaTeX
% \cite{source2e}. Uma âncora de abstração de nome `\hookextline` foi deixada em
% `\extline` para permitir que o escritor insira parâmetros de ajuste de
% parágrafo, do tipo:
@@ -809,11 +816,8 @@
}
%. \end{code}
-% Aqui estão \`\nonum` e \`\notoc`.
+% Aqui estão \`\nonum` e \`\notoc`. Os comandos secionais `\part`, `\chapter` e `\section` têm âncoras em suas definições que servem para instruções de quebra de página.
-% Os comandos secionais `\part`, `\chapter` e `\section` têm âncoras em suas
-% definições que servem para instruções de quebra de página.
-
% \begin{code}
\def\hookpart{\clearpage}
\def\hookchapter{\clearpage}
@@ -937,7 +941,6 @@
% usar `\lastskip` ou `\lastpenalty` para remoção de `\vskip`s duplicados\bgroup
% \def\UrlBreaks{\do\-}\footnote{\url{https://tex.stackexchange.com/questions/709109/cross-referencing-label-affects-vertical-spacing},
% \url{https://tex.stackexchange.com/questions/22068/biblatex-multicol-incorrect-vertical-space-after-bibliography-heading}.}\egroup.
-
% Exemplos de tais comandos são `\toptitle` e `\bottitle`, implementados nesta
% classe.
@@ -1717,7 +1720,7 @@
% \begin{code}
\newenvironment{subplace}[1][.4\linewidth]{%
- \begingroup
+ \begingroup \def\aboveplace{0pt}\def\belowplace{0pt}%
\hsize=#1\relax \linewidth=\hsize
\let\savedlegend=\savedsublegend
\let\savedsrc=\savedsubsrc
@@ -1731,7 +1734,7 @@
\ignorespacesafterend
\endgroup
}
-\def\buildsubplace{\leavevmode\vbox{%
+\def\buildsubplace{\leavevmode\vbox{\processplacearg{here}%
\initplace
\ifx\savedplace\empty \else
\printlegendbox
More information about the tex-live-commits
mailing list.