texlive[67743] Master/texmf-dist: abntexto (27jul23)
commits+karl at tug.org
commits+karl at tug.org
Thu Jul 27 21:52:07 CEST 2023
Revision: 67743
http://tug.org/svn/texlive?view=revision&revision=67743
Author: karl
Date: 2023-07-27 21:52:07 +0200 (Thu, 27 Jul 2023)
Log Message:
-----------
abntexto (27jul23)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/abntexto/README
trunk/Master/texmf-dist/doc/latex/abntexto/abntexto.tex
trunk/Master/texmf-dist/tex/latex/abntexto/abntexto.cls
Added Paths:
-----------
trunk/Master/texmf-dist/doc/latex/abntexto/abntexto.pdf
Removed Paths:
-------------
trunk/Master/texmf-dist/doc/latex/abntexto/abntexto-manual.pdf
Modified: trunk/Master/texmf-dist/doc/latex/abntexto/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/abntexto/README 2023-07-27 19:51:15 UTC (rev 67742)
+++ trunk/Master/texmf-dist/doc/latex/abntexto/README 2023-07-27 19:52:07 UTC (rev 67743)
@@ -1,8 +1,8 @@
Public Domain Software
-2023-01-31
-2.0.0-alpha
+2023-07-26
+3.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
+to the guidelines of the Associação Brasileira de Normas Técnicas (ABNT).
Deleted: trunk/Master/texmf-dist/doc/latex/abntexto/abntexto-manual.pdf
===================================================================
(Binary files differ)
Added: trunk/Master/texmf-dist/doc/latex/abntexto/abntexto.pdf
===================================================================
(Binary files differ)
Index: trunk/Master/texmf-dist/doc/latex/abntexto/abntexto.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/abntexto/abntexto.pdf 2023-07-27 19:51:15 UTC (rev 67742)
+++ trunk/Master/texmf-dist/doc/latex/abntexto/abntexto.pdf 2023-07-27 19:52:07 UTC (rev 67743)
Property changes on: trunk/Master/texmf-dist/doc/latex/abntexto/abntexto.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/abntexto/abntexto.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/abntexto/abntexto.tex 2023-07-27 19:51:15 UTC (rev 67742)
+++ trunk/Master/texmf-dist/doc/latex/abntexto/abntexto.tex 2023-07-27 19:52:07 UTC (rev 67743)
@@ -2,117 +2,105 @@
\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[cmyk]{xcolor}
+\usepackage[style=abnt]{biblatex} \addbibresource{abntexto.bib}
\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
+\usepackage{unicode-math}
+\usepackage[colorlinks,linktoc=page]{hyperref}
+\usepackage{listings}
-\rewrite
-\let\href=\relax \def\textcite#1{{\bfseries#1}} \def\today{}
-\endrewrite
+\makeatletter
-% MARKUP
+% VERBATIM
% ================================================
-\def\ttnoligs{\ttfamily\@noligs}
+\newcount\verbcount
+\newdimen\hh \hh=6pt
-\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\adef#1{\catcode`#1=13 \begingroup \lccode`\~=`#1\lowercase{\endgroup\def~}}
+\def\setverb{\def\do##1{\catcode`##1=12}\dospecials}
-\def\arg{\cc{arg}}
-\def\opt{\kk{opt}}
-\def\ccval#1{{\ttnoligs \{#1\}}}
-\def\kkval#1{{\ttnoligs [#1]}}
-\def\pkg#1{{\ttnoligs #1}}
+{\catcode`\^^M=13
+ \gdef\verbpercent#1^^M{{\bfseries\color{comment}\%#1}^^M}
+}
-% VERBATIM
-% ================================================
+\def\makeverbcount{}
-\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 }
+\def\begverb{\par \begingroup\parindent=0pt\parskip=0pt
+ \setverb \catcode`\|=0
+ \adef{ }{\ }%
+ \adef{\^^I}{\ \ \ }%
+% \everypar={\makeverbcount}%
+ \def\par##1{\endgraf\ifx##1\par\leavevmode\fi ##1}%
+ \obeylines
+ \adef{'}{\textquotesingle}%
+% \adef{`}{\`{}}%
+ \adef{-}{-\kern0pt }%
+ \adef{\%}{\verbpercent}%
+ \startverb
+}
-{\catcode`\^^M=13
- \gdef\codepercent#1^^M{{\color{graycomment}\itshape\@percentchar#1^^M}}
+{\catcode`\^^M=13 \catcode`\|=0 \catcode`\\=12
+ |long|gdef|startverb#1\endverb{|verbbox{#1|endgraf}|endgroup|resetplace}
}
-\long\def\codeon{\begingroup \codecatcodes
- \adef{\^^I}{\space\space\space}%
- \adef{\^^M}{\par\leavevmode}%
- \adef{\ }{\space}%
- \adef{\%}{\codepercent}%
- \startcode
+\def\verbbox#1{\place{\verbframe{#1}}}
+\def\verbframe#1{%
+ \hbox{{\color{leftbar}\vrule width1pt}\kern\hh\vbox{%
+ \hbox{\vbox{\advance\hsize-1pt \advance\hsize-\hh \verbfont #1}}%
+ }}%
}
+\def\verbfont{\sloppy\ttfamily\small\singlesp}
-{\catcode`\ =13 \catcode`\^^M=13 \catcode`\|=0 \catcode`\\=12
- |gdef|startcode^^M#1^^M\codeoff{|codebox{#1}|par|endgroup |codereset}
+\def\verbchar#1{%
+ \ifx\savedttchar\undefined\else \catcode\savedttchar=\savedttcharc \fi
+ \chardef\savedttchar=`#1%
+ \chardef\savedttcharc=\catcode`#1%
+ \bgroup\lccode`\~=`#1%
+ \lowercase {\egroup\def~}{\leavevmode\hbox\bgroup\setverb\adef{ }{\ }%
+ \ttfamily\readverb}%
+ \bgroup\lccode`\~=`#1\lowercase{\egroup\def\readverb ##1~}{##1\egroup}%
+ \catcode`#1=13
}
-\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}}}
+\verbchar{|}
+\AddToHook{begindocument}{\adef{<}{\begingroup \setverb\startmeta}}
+\def\startmeta#1>{\ttfamily$\langle${\rmfamily\itshape #1\/}$\rangle$\endgroup}
+
% MISC
% ================================================
-\definecolor{mono}{cmyk}{0,0,0,.73}
-\definecolor{graybar}{gray}{.75}
-\definecolor{graycomment}{gray}{.2}
+\definecolor{leftbar}{gray}{.75}
+\definecolor{comment}{gray}{.2}
-\erase
-\setmainfont{TeX Gyre Termes}
-\setmonofont{Inconsolatazi4-Regular}[Color=mono]
-%\newfontfamily\bgfont{Inconsolatazi4-Regular}[Color=bgfontcolor]
-\enderase
+\setmainfont{texgyretermes}[
+ UprightFont = *-regular,
+ BoldFont = *-bold,
+ ItalicFont = *-italic,
+ BoldItalicFont = *-bolditalic,
+ Extension = .otf
+]
+\setmonofont{InconsolataN-Regular.otf}
+\setmathfont{texgyretermes-math.otf}
-\def\tocifont{\bfseries}
-\def\sectionfont{\bfseries}
+\def\tocsectionfont#1{\bfseries#1\mdseries}
+\def\sectionfont#1{\bfseries#1}
+\def\appendixlabelwidth{6.7em}
+\def \l at section {\addpenalty{-300}\addvspace{1em plus1pt}%
+ \extline{0pt}{\toclabelwidth}{\tocsectionfont}}
+\def \l at appendix {\addpenalty{-300}\addvspace{1em plus1pt}%
+ \extline{0pt}{\appendixlabelwidth}{\maintocfont}}
+\def \l at annex {\addpenalty{-300}\addvspace{1em plus1pt}%
+ \extline{0pt}{\annexlabelwidth}{\maintocfont}}
-\sizedef \large {14.4pt}{17pt}{}
-\sizedef \Large {20.74pt}{25pt}{}
-\sizedef \LARGE {25pt}{30pt}{}
+\definelegendplace{code}{Código}{cód.\,}{loc}
+\def\me{o Autor.}
-\definelegendplace{code}{Código}{Lista de códigos}{cód.\,#1}{loc}
-\def\me{o autor.}
-
-\clubpenalty=10000
-\widowpenalty=10000
-
+\clubpenalty=10000
+\widowpenalty=10000
\let\cite=\textcite
-\def\bibfont{\singlesp}
-\erase
-\bibitemsep=18pt
-\enderase
+\def\bibfont{\bibitemsep=\baselineskip \singlesp}
\makeatother
@@ -127,37 +115,35 @@
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}
-
+ \today
+\par}
\vskip3in
-{\centering\large\ttfamily 2.0.0-alpha\par}
-
+{\centering\large\ttfamily 3.0.0-alpha\par}
\newpage
+\heading{Sumário}
\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).
+O |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.}.
+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.
+Já existe uma classe para aplicação das normas ABNT cujo nome é |abntex2|. Mas, diferente desta, o |abntexto| não depende do |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.
+As normas ABNT as quais o |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.
+O |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}.
+Digite as linhas em \ref{cd:início} e use |abntexto|.
\legend{code}{Início} \src\me
\label{cd:início}
-\codeon
+\begverb
% !TeX TS-program = lualatex
\documentclass{abntexto}
@@ -164,69 +150,77 @@
\usepackage[brazil]{babel}
\usepackage{fontspec}
-\setmainfont{TeX Gyre Termes}
+\setmainfont{texgyretermes}[
+ UprightFont = *-regular,
+ BoldFont = *-bold,
+ ItalicFont = *-italic,
+ BoldItalicFont = *-bolditalic,
+ Extension = .otf
+]
\begin{document}
Texto
\end{document}
-\codeoff
+\endverb
\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.
+O tamanho da fonte é 12\,pt de imediato e pode ser configurado com o comando |\setfontsize{<id>}| sendo que 12\,pt é a única opção disponível. Além disso, com os seletores de tamanho |\normalsize| e |\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.
+Mas, se você deseja outro tamanho de fonte, crie-o usando |\definefontsize{<id>}{<definições>}| e |\sizedef<seletor>{<tamanho>}{<entrelinha natural>}|. Em <definições>, o seletor |\normalsize| deve estar presente por meio de |\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}.
+O espaçamento é de um e meio e pode ser alterado para dois com |\spacing{2}|, por exemplo. Os atalhos |\singlesp|, |\onehalfsp| e |\doublesp| estão disponíveis. Note que o espaçamento simples não tem o mesmo valor que o espaçamento um, portanto, |\singlesp| é diferente de |\spacing{1}|! Os atalhos |\onehalfsp| e |\doublesp| tem o mesmo significado de |\spacing{1.5}| e |\spacing{2}|.
+A limitação do comando |\spacing| é que ele só pode ser usado após um seletor de tamanho, porque este redefine a entrelinha. Por exemplo, |\small\onehalfsp| é correto e |\onehalfsp\small| ineficaz.
+
\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}}.
+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. As margens foram ajustadas com o pacote |geometry|.
-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: |\pretextual| que, além de desabilitar o modo |twoside|, remove a numeração de página e é executado automaticamente logo após |\begin{document}| e o comando |\textual| que também é executado automaticamente logo antes da primeira chamada de |\section| por meio de |\trytextual|. Dessa forma, a numeração de página será posta no topo da página e as margens passarão a ser espelhadas.
-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}).
+Os comandos que mudam a fonte das entradas no ToC (Table of Contents) são |\tocsectionfont|, |\tocsubsectionfont|, \dots, |\tocsubparagraphfont| (ver \ref{cd:contents}).
\legend{code}{Aparência do sumário} \src\me
\label{cd:contents}
-\codeon
+\begverb
\documentclass{abntexto}
-\usepackage{color}
+\usepackage{xcolor}
-\def \tocifont {\color{red}\itshape\MakeUppercase}
-\def \tociifont {\color{blue}\bfseries}
+\def \tocsectionfont #1{\color{red}\itshape\MakeUppercase{#1}}
+\def \tocsubsectionfont #1{\color{blue}\bfseries#1}
\begin{document}
+ \heading{Sumário}
\maketoc
\section{Título}
\subsection{Título}
\end{document}
-\codeoff
+\endverb
\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}.
+A personalização das macros de seção (|\section|, |\subsection| etc.) é análoga a personalização do sumário e deve ser feita com |\sectionfont|, |\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.
+Também há como alterar o espaço vertical acima e abaixo das seções usando |\abovesection|, |\belowsection| e semelhantes. Por exemplo, |\def\abovesubsection{2cm}| insere um espaço de 2\,cm acima de |\subsection|.
\legend{code}{Aparência das seções} \src\me
\label{cd:sec}
-\codeon
+\begverb
\documentclass{abntexto}
-\usepackage{color}
+\usepackage{xcolor}
-\def \sectionfont {\color{blue}\scshape}
-\def \subsectionfont {\color{red}\itshape}
-\def \subsubsectionfont {\color{yellow}\sffamily}
+\def \sectionfont #1{\color{blue}\scshape#1}
+\def \subsectionfont #1{\color{red}\itshape#1}
+\def \subsubsectionfont #1{\color{yellow}\sffamily#1}
\begin{document}
+ \heading{Sumário}
\maketoc
\section{Texto}
@@ -233,15 +227,15 @@
\subsection{Texto}
\subsubsection{Texto}
\end{document}
-\codeoff
+\endverb
\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.
+Use o ambiente |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 |\label| após um item.
\legend{code}{Alíneas} \src\me
\label{cd:topics}
-\codeon
+\begverb
\begin{topics}
\item \label{al:x} 1
\begin{topics}
@@ -252,17 +246,15 @@
\item \label{al:y} 2
\item 3
\end{topics}
-\codeoff
+\endverb
\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}.
+Use |\place{<obj>}| para inserir áreas de legenda como mostrado em \ref{cd:place}. Mas existem condições: |\place| deve vir por último e |\label| precisa estar depois de |\legend{<tipo de obj>}{<legenda>}|. Além disso, existe a possibilidade de alterar o espaço vertical acima e abaixo de uma área de legenda com |\def\aboveplace{<valor>}| e |\def\belowplace{<valor>}|.
\legend{code}{Áreas de legenda} \src\me
\label{cd:place}
-\codeon
-\usepackage{graphicx}
-
+\begverb
\begin{document}
\legend{figure}{Um título}
\src{\texttt{www.site.com.br}. Acesso em 01 jan. 2020.}
@@ -271,62 +263,51 @@
Ver \ref{fig:teste}.
\end{document}
-\codeoff
+\endverb
-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.
+O leitor pode querer definir uma nova área de legenda usando, por exemplo, a instrução |\definelegendplace{diagram}{Diagrama}{diag.\,#1}{lod}| criará o comando |\makelod| para escrever no documento as entradas do arquivo auxiliar .lod.
-\section{Formatação de {\ttfamily\protect\textbackslash cite} e referências}
+\section{Formatação de {\ttfamily\textbackslash\lowercase{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\}}.
+Até o momento o |abntexto| não possui macros para formatação de |\cite| e referências. Utilize |\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}}.
+Para inserir aspas em citações diretas use |\enquote{texto}\cite{<key>}|. Mas, se tratando de citações diretas com mais de três linhas, alterne para |\Enquote{texto \cite{<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}).
+Com os comandos |\appendix| e |\annex| você pode inserir apêndices e anexos junto dos 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
+\begverb
\begin{document}
- \appendix
- \section{Lorem}
- \section{Lipsum}
+ \appendix{Lorem}
+ \appendix{Lipsum}
- \annex
- \section{Lorem}
- \section{Lipsum}
+ \annex{Lorem}
+ \annex{Lipsum}
\end{document}
-\codeoff
+\endverb
-Pode-se alterar a largura dos rótulos das entradas de apêndice/anexo no sumário redefinindo \cs\appendixlabelwidth \,/\,\cs\annexlabelwidth.
+Pode-se alterar a largura dos rótulos das entradas de apêndice/anexo no sumário redefinindo |\appendixlabelwidth|\,/\,|\annexlabelwidth|.
-%\end{document}
-
\newpage
-\erase
-\corrprinton
-\printbibliography
-\corrprintoff
-\enderase
+\begcorrprint{Referências}
+ \printbibliography
+\endcorrprint
\newpage
-\let\origsection=\section
-\appendix
+\appendix{Glossário}
-\section{Glossário}
+Você pode criar glossários com o pacote |glossaries|, como em \ref{cd:gloss}.
-%\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
+\legend{code}{Glossário} \src\me
+\label{cd:gloss}
+\begverb
\usepackage{lipsum}
\usepackage{glossaries}
@@ -339,18 +320,19 @@
\begin{document}
O \gls{metalism} e o \gls{lip}.
- \corrprinton
+ \begcorrprint{Glossário}
\printnoidxglossary
- \corrprintoff
+ \endcorrprint
\end{document}
-\codeoff
+\endverb
-\section{Lista de siglas}
+\appendix{Lista de siglas}
-O pacote \pkg{glossaries} também serve para criar uma lista de siglas.
+O |glossaries.sty| também serve para criar uma lista de siglas, conforme \ref{cd:acro}.
-\codeon
-\usepackage{lipsum}
+\legend{code}{Siglas} \src\me
+\label{cd:acro}
+\begverb
\usepackage[acronym]{glossaries}
\makenoidxglossaries
@@ -358,29 +340,29 @@
\newacronym{ibge}{IBGE}{Instituto Brasileiro de Geografia e Estatística}
\newacronym{html}{HTML}{Hypertext Markup Language}
+\def\acr#1{\gls{#1}}
+
\begin{document}
- 1ª chamada: \gls{ibge}, \gls{html}.
+ 1ª chamada: \acr{ibge}, \acr{html}.
- 2ª chamada: \gls{ibge}, \gls{html}.
+ 2ª chamada: \acr{ibge}, \acr{html}.
- \corrprinton
+ \begcorrprint{Lista de siglas}
\def\acronymname{Lista de siglas}
\printnoidxglossary[type=acronym]
- \corrprintoff
+ \endcorrprint
\end{document}
-\codeoff
+\endverb
-\section{\emph{Feedback}}
+\appendix{\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
+\appendix{Código-fonte}
-\definecolor{bg}{cmyk}{0,0.06,0,0}
+\definecolor{background}{cmyk}{0,0.08,0,0}
\definecolor{comment}{cmyk}{0.9,0,0,0.1}
\definecolor{letter}{cmyk}{0,0,0,.8}
@@ -387,63 +369,36 @@
\parskip=0pt plus.2ex minus.1ex
\countsection=0
-\def\addcontentsline#1#2#3{}
+\def\addtoext#1#2#3{}
\def\sectionfont{\itshape}
-\def\sec#1\par{\origsection{#1}}
+\def\sec#1\par{\section{#1}}
+\def\verbfont{\raggedright\ttfamily\small\sloppy}
+\def\codesep{2mm}
+\def\leftsep{5mm}
-{\catcode`\^^M=13
- \gdef\codepercent#1^^M{{\bfseries\color{comment}\@percentchar#1^^M}}
-}
+\lstnewenvironment{code}{\lstset{
+ frame=single,
+ framerule=0pt,
+ framesep=\codesep,
+ xleftmargin=\dimexpr\codesep+\leftsep,
+ xrightmargin=\codesep,
+ framexleftmargin=\leftsep,
+ firstnumber=last,
+ numbers=left,
+ numbersep=6pt,
+ numberstyle=\fontsize{8pt}{9pt}\selectfont,
+ basicstyle=\verbfont,
+ commentstyle=\color{blue}\bfseries,
+ comment=[l]{\%},
+ columns=fullflexible,
+ tabsize=3,
+ backgroundcolor=\color{background},
+ literate=
+ {\ }{ }1 {\^^M\%}{}2
+}}{}
-\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`\!=14 \catcode`\%=9
+ \input abntexto.cls
}
-{\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}
Modified: trunk/Master/texmf-dist/tex/latex/abntexto/abntexto.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/abntexto/abntexto.cls 2023-07-27 19:51:15 UTC (rev 67742)
+++ trunk/Master/texmf-dist/tex/latex/abntexto/abntexto.cls 2023-07-27 19:52:07 UTC (rev 67743)
@@ -1,6 +1,6 @@
%! Public Domain Software
-%! 2023-01-31
-%! 2.0.0-alpha
+%! 2023-07-26
+%! 3.0.0-alpha
%! Elayson
%! abntexto.classe at gmail.com
@@ -21,42 +21,31 @@
% \sec RECOMENDAÇÕES
-% 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.
+% 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, |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}.
+% Identificação do formato \TeX\ e da classe, carregando a classe |article| e os únicos pacotes do |abntexto|.
-% |bcode !------------------------------------------------
+% \begin{code} !------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{abntexto}[2023-01-31 2.0.0-alpha Preparation of works in ABNT standards]
+\ProvidesClass{abntexto}[2023-07-26 3.0.0-alpha Preparation of works in ABNT standards]
-\RequirePackage{keyval}
-% |ecode !------------------------------------------------
+\LoadClass{article}
+\RequirePackage{geometry}
+\RequirePackage{graphicx}
+% \end{code} !------------------------------------------------
-% Definição de um sistema \emph{chave=valor} pessoal e de macros auxiliares.
+% Um atalho para |\ClassError|.
-% |bcode !------------------------------------------------
-\def\tnba at key{\define at key{tnba@\tnba at keyfamily}}
-\def\tnba at setkeys#1{\setkeys{tnba@#1}}
-
-\def\tnba at addto#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}}
-
-\newif \iftnba at inbody
-\AddToHook{begindocument}{\tnba at inbodytrue}
-% |ecode !------------------------------------------------
-
-% Alertas, mensagens, \emph{debug}.
-
-% |bcode !------------------------------------------------
-\def\tnba at warning{\ClassWarningNoLine{abntexto}}
+% \begin{code} !------------------------------------------------
\def\tnba at error#1{\ClassError{abntexto}{#1}{}}
-% |ecode !------------------------------------------------
+% \end{code} !------------------------------------------------
-% Condicionais para identificação da extensão \TeX.
+% Condicionais para identificação da extensão TeX.
-% |bcode !------------------------------------------------
+% \begin{code} !------------------------------------------------
\newif \iftnba at PDFTEX
\newif \iftnba at XETEX
\newif \iftnba at LUATEX
@@ -65,23 +54,23 @@
\tnba at PDFTEXtrue \else
\tnba at XETEXtrue \fi \else
\tnba at LUATEXtrue \fi
-% |ecode !------------------------------------------------
+% \end{code} !------------------------------------------------
% \sec FONTE TIPOGRÁFICA
-% Apenas o tamanho 12\,pt está definido. Defina outros usando \cs\definefontsize\cc{id}\hfil\break \cc{definições}.
+% Apenas o tamanho 12\,pt está definido. Defina outros usando |\definefontsize{<id>}{<definições>}|.
-% |bcode !------------------------------------------------
+% \begin{code} !------------------------------------------------
\def\definefontsize#1#2{\@namedef{tnba at fontsize@#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
+ \tnba at error{Tamanho de fonte "#1" desconhecido. Defina um novo usando \noexpand\definefontsize}\fi
}
+\@onlypreamble \definefontsize
\@onlypreamble \setfontsize
-\def\sizedef#1#2#3#4{\DeclareRobustCommand#1{\fontsize{#2}{#3}\selectfont#4}}
+\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
@@ -88,7 +77,6 @@
}
\def\currspacing{1.5}
-\def\normalsize{}
\def\tnba at setfontsizehook{}
\AddToHook{begindocument}{%
@@ -100,69 +88,38 @@
\def\singlesp{\baselineskip=\normalbaselineskip}
\def\onehalfsp{\spacing{1.5}}
\def\doublesp{\spacing{2}}
-% |ecode !------------------------------------------------
+% \end{code} !------------------------------------------------
% \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.
+% 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.
-% |bcode !------------------------------------------------
-\iftnba at LUATEX
- \protected\edef\pdfhorigin {\pdfvariable horigin}
- \protected\edef\pdfvorigin {\pdfvariable vorigin}
- \let\pdfpagewidth=\pagewidth
- \let\pdfpageheight=\pageheight
-\fi
+% A instrução |\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, |twoside| vai espelhar as margens horizontais.
-\def \tnba at keyfamily {setlayout}
-
-\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 \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
- \headheight=12pt
- \headsep=1cm
- \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
- \tnba at setlayoutA
-}
-
-\def \tnba at setlayoutA {%
- \iftnba at XETEX
- \advance\oddsidemargin-1in \advance\evensidemargin-1in \advance\topmargin-1in
- \pdfpagewidth=\paperwidth \pdfpageheight=\paperheight
- \else
- \pdfhorigin=0pt \pdfvorigin=0pt
- \pdfpagewidth=\paperwidth \pdfpageheight=\paperheight
- \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.
-
-% 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{\setlayout{twoside=false}%
+% \begin{code} !------------------------------------------------
+\def\pretextual{%
+ \newgeometry{
+ twoside=false,
+ left = 3cm,
+ top = 3cm,
+ right = 2cm,
+ bottom = 2cm
+ }%
+ \spacing{1.5}%
\let\@oddhead=\empty
\let\@evenhead=\empty
\let\@oddfoot=\empty
\let\@evenfoot=\empty
}
-\def\textual{\setlayout{twoside=true}%
+\def\textual{%
+ \newgeometry{
+ twoside=true,
+ left = 3cm,
+ top = 3cm,
+ right = 2cm,
+ bottom = 2cm
+ }%
+ \spacing{1.5}%
\def\@oddhead{\hfil\small\thepage}%
\def\@evenhead{\small\thepage\hfil}%
\def\@oddfoot{}%
@@ -169,63 +126,61 @@
\def\@evenfoot{}%
\parindent=1.5cm
}
-% |ecode !------------------------------------------------
+% \end{code} !------------------------------------------------
% \sec SUMÁRIO
-% 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.
+% 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.
-% |bcode !------------------------------------------------
-\newdimen\extlabelwidth
+% \begin{code} !------------------------------------------------
-\def\thepage{\the\c at page}
-
\def\extpagenumwidth{1.55em}
\def\extrightmargin{2.55em}
-\def\extline#1#2#3#4#5{\vskip0pt plus.2pt
- \extlabelwidth=#2
+\def\extline#1#2#3#4#5{%
\begingroup
- \parindent=#1 \leftskip=#1
- \rightskip=\extrightmargin \parfillskip=-\rightskip
- \leavevmode #3{}\advance\leftskip\extlabelwidth \hskip-\leftskip #3{#4}\nobreak\extleaders\nobreak
+ \parindent=0pt \leftskip=#1
+ \rightskip=\extrightmargin\relax \parfillskip=-\rightskip
+ #3{\advance\leftskip#2\relax \hskip-#2\relax #4}%
+ \nobreak\extleaders\nobreak
\hbox to\extpagenumwidth{\hfil #5\kern-1pt\kern1pt}\nbpar
\endgroup
}
\def\extleaders{\leaders\hbox{$\mathsurround=0pt \mkern4.5mu\hbox{.}\mkern4.5mu$}\hfill}
-\def \l at toci #1#2{\addpenalty{351}\addvspace{1em plus1pt}%
- \extlabelwidth=\toclabelwidth
- \begingroup
- \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 part {\addpenalty{-300}\addvspace{2.25em plus1pt}%
+ \extline{0pt}{\toclabelwidth}{\def\extleaders{\hfil}\tocpartfont}}
+\def \l at chapter {\addpenalty{-300}\addvspace{1em plus1pt}%
+ \extline{0pt}{\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 \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 !------------------------------------------------
+\def\toclabelbox#1{\hbox to\toclabelwidth{#1\hss}}
+% \end{code} !------------------------------------------------
% \sec SECIONAMENTO
-% O comando \cs\hangfrom\ foi retirado do kernel. Ele vai ser útil na formatação das seções.
+% O comando |\hangfrom| é oriundo 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 !------------------------------------------------
+% \begin{code} !------------------------------------------------
\let\hangfrom=\@hangfrom
\def\nbpar{{\interlinepenalty=10000\par}}
-\def\advcount#1{\advance#1by1 }
-\def\addtotoc{\hreftocline\currsecname \addcontentsline{toc}}
-% |ecode !------------------------------------------------
+\def\trytextual{\textual \let\textual=\relax}
+% \end{code} !------------------------------------------------
-% |bcode !------------------------------------------------
+% \begin{code} !------------------------------------------------
\newcount\countseclevel
+\newcount\countpart
+\newcount\countchapter
\newcount\countsection
\newcount\countsubsection
\newcount\countsubsubsection
@@ -232,138 +187,223 @@
\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}
-% |ecode !------------------------------------------------
+% \end{code} !------------------------------------------------
% Nesta parte estão definidos os comandos secionais. Nenhum destes comandos são internos, caso o leitor queira redefiní-los.
-% |bcode !------------------------------------------------
-\def\recountseci {\countsubsection=0 \recountsecii}
-\def\recountsecii {\countsubsubsection=0 \recountseciii}
-\def\recountseciii {\countparagraph=0 \recountseciv}
-\def\recountseciv {\countsubparagraph=0 }
+% \begin{code} !------------------------------------------------
+\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\noindentfirst{\global\everypar={\global\everypar={}\setbox7=\lastbox}}
-\def\tryindentfirst{}
-
-\def\startsection#1{\advcount\countsection \recountseci
+\def\printpart#1{%
+ \begingroup
+ \centering\huge\bfseries Parte \thepart
+ \vskip20pt
+ \Huge\bfseries #1\nbpar
+ \endgroup
+}
+\def\printchapter#1{%
+ \begingroup
+ \raggedright\huge\bfseries Capítulo \thechapter
+ \vskip20pt
+ \Huge\bfseries #1\nbpar
+ \endgroup
+}
+\def\printsection#1{{%
\hangfrom{\sectionfont\thesection\quad}%
- {\sectionfont{#1}\nbpar}%
- \tryindentfirst
-}
-\def\startsubsection#1{\advcount\countsubsection \recountsecii
+ \sectionfont{#1}\nbpar
+}}
+\def\printsubsection#1{{%
\hangfrom{\subsectionfont\thesubsection\quad}%
- {\subsectionfont{#1}\nbpar}%
- \tryindentfirst
-}
-\def\startsubsubsection#1{\advcount\countsubsubsection \recountseciii
+ \subsectionfont{#1}\nbpar
+}}
+\def\printsubsubsection#1{{%
\hangfrom{\subsubsectionfont\thesubsubsection\quad}%
- {\subsubsectionfont{#1}\nbpar}%
- \tryindentfirst
-}
-\def\startparagraph#1{\advcount\countparagraph \recountseciv
+ \subsubsectionfont{#1}\nbpar
+}}
+\def\printparagraph#1{{%
\hangfrom{\paragraphfont\theparagraph\quad}%
- {\paragraphfont{#1}\nbpar}%
- \tryindentfirst
-}
-\def\startsubparagraph#1{\advcount\countsubparagraph
+ \paragraphfont{#1}\nbpar
+}}
+\def\printsubparagraph#1{{%
\hangfrom{\subparagraphfont\thesubparagraph\quad}%
- {\subparagraphfont{#1}\nbpar}%
- \tryindentfirst
-}
-% |ecode !------------------------------------------------
+ \subparagraphfont{#1}\nbpar
+}}
+% \end{code} !------------------------------------------------
-% A instrução \cs\setcurrlabel\ ensina a forma como \cs\label's devem ser referenciados. Esse comando pode ser útil em outros contextos.
+% A instrução |\setlabel| ensina a forma como |\label|'s devem ser referenciados. O comando |\setlabel| será útil em outros contextos.
-% |bcode !------------------------------------------------
-\def\setcurrlabel#1{\def\@currentlabel{#1}}
+% \begin{code} !------------------------------------------------
+\def\partlevel {-1}
+\def\chapterlevel {0}
+\def\sectionlevel {1}
+\def\subsectionlevel {2}
+\def\subsubsectionlevel {3}
+\def\paragraphlevel {4}
+\def\subparagraphlevel {5}
-\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\setlabel#1{\def\@currentlabel{#1}}
-\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}
+\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}
-\def\section#1{\par \addpenalty{351}\addvspace\abovesection
- \identifysection
- \startsection{#1}%
+\def\part#1{\cleardoublepage\trytextual \leavevmode\vfil
+ \global\advance\countpart by1
+ \countseclevel=\partlevel\relax \setlabel\cfpart
+ \addtoext{toc}{part}{\protect\toclabelbox{\thepart}#1}%
+ \printpart{#1}%
+ \markpart{#1}%
+ \newpage
+}
+\def\chapter#1{\cleardoublepage\trytextual \leavevmode\vskip\abovechapter\relax
+ \global\advance\countchapter by1 {\globaldefs=1 \recountchapter}%
+ \countseclevel=\chapterlevel\relax \setlabel\cfchapter
+ \addtoext{toc}{chapter}{\protect\toclabelbox{\thechapter}#1}%
+ \printchapter{#1}%
+ \markchapter{#1}%
+ \par\nobreak \vskip\belowchapter\relax
+}
+\def\section#1{\trytextual \addpenalty{-300}\addvspace\abovesection
+ \global\advance\countsection by1 {\globaldefs=1 \recountsection}%
+ \countseclevel=\sectionlevel\relax \setlabel\cfsection
+ \addtoext{toc}{section}{\protect\toclabelbox{\thesection}#1}%
+ \printsection{#1}%
\marksection{#1}%
- \addtotoc{toci}{\protect\toclabelbox{\thesection}#1}%
- \par\nobreak \vskip\belowsection
+ \par\nobreak \vskip\belowsection\relax % Esse \par é necessário.
}
-\def\subsection#1{\par \addpenalty{351}\addvspace\abovesubsection
- \identifysubsection
- \startsubsection{#1}%
+\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}%
- \addtotoc{tocii}{\protect\toclabelbox{\thesubsection}#1}%
- \par\nobreak \vskip\belowsubsection
+ \par\nobreak \vskip\belowsubsection\relax
}
-\def\subsubsection#1{\par \addpenalty{351}\addvspace\abovesubsubsection
- \identifysubsubsection
- \startsubsubsection{#1}%
- \marksubsubsection{#1}%
- \addtotoc{tociii}{\protect\toclabelbox{\thesubsubsection}#1}%
- \par\nobreak \vskip\belowsubsubsection
+\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{\par \addpenalty{351}\addvspace\aboveparagraph
- \identifyparagraph
- \startparagraph{#1}%
- \markparagraph{#1}%
- \addtotoc{tociv}{\protect\toclabelbox{\theparagraph}#1}%
- \par\nobreak \vskip\belowparagraph
+\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{\par \addpenalty{351}\addvspace\abovesubparagraph
- \identifysubparagraph
- \startsubparagraph{#1}%
- \marksubparagraph{#1}%
- \addtotoc{tocv}{\protect\toclabelbox{\thesubparagraph}#1}%
- \par\nobreak \vskip\belowsubparagraph
+\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
}
-% |ecode !------------------------------------------------
+% \end{code} !------------------------------------------------
-% 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.
+% 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.
-% |bcode !------------------------------------------------
-\def\toclabelbox#1{\hbox to\extlabelwidth{#1\hfil}}
+% \begin{code} !------------------------------------------------
+
+\def\begcorrprint#1{\begingroup
+ \addtoext{toc}{section}{#1}%
+ \def\section##1##2{\heading{##2}}%
+}
+\def\endcorrprint{\par\endgroup}
+
+\def\usechapters{%
+ \def\l at section{\extline{0pt}{\toclabelwidth}{\tocsectionfont}}%
+ \def\thesection{\thechapter.\the\countsection}%
+ \def\mainseclevel{\chapterlevel}%
+ \def\maintocfont{\tocchapterfont}%
+ \def\begcorrprint##1{\begingroup
+ \addtoext{toc}{chapter}{##1}%
+ \def\section####1####2{\heading{####2}}%
+ }%
+}
+\def\useparts{\usechapters
+ \def \l at chapter {\addpenalty{-300}\addvspace{1em plus1pt}%
+ \extline{0pt}{\toclabelwidth}{\tocchapterfont}}%
+}
+
\def\makeext#1{\@starttoc{#1}}
-\def\tocname{Sumário}
+\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} !------------------------------------------------
-\def\hreftocline#1{\Hy at MakeCurrentHrefAuto{#1}%
- \Hy at raisedlink{\hyper at anchorstart{\@currentHref}\hyper at anchorend}%
+% 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\mainseclevel{\sectionlevel}
+\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}{%
- \@ifpackageloaded{hyperref}{}{\let\hreftocline=\@gobble}%
+\AddToHook{begindocument/before}{%
+ \@ifpackageloaded{hyperref}{}{%
+ \def\addtoext#1#2#3{\addcontentsline{#1}{#2}{#3}}%
+ \let\pdfstringdefDisableCommands=\@gobble
+ }%
}
-% |ecode !------------------------------------------------
+% \end{code} !------------------------------------------------
-% A macro \cs\heading\ serve para produzir títulos não contados, como “Sumário”, “Lista de figuras”, “Apêndice” etc.
+% A macro |\heading| serve para produzir títulos não contados, como “Sumário”, “Lista de figuras”, “Apêndice” etc.
-% |bcode !------------------------------------------------
-\def\heading#1{\par {\centering \sectionfont{#1}\par}%
- \nobreak \vskip\belowsection
+% \begin{code} !------------------------------------------------
+\def\heading#1{{\centering \sectionfont{#1}\par}%
+ \vskip\belowsection\relax
}
-% |ecode !------------------------------------------------
+% \end{code} !------------------------------------------------
-% 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.
+% Aqui estão definidos |\appendix| e |\annex|.
-% |bcode !------------------------------------------------
+% \begin{code} !------------------------------------------------
\newcount\countappendix
\newcount\countannex
@@ -370,211 +410,299 @@
\def\theappendix{\@Alph\countappendix}
\def\theannex{\@Alph\countannex}
-\def\appendixlabelwidth{6.6em}
-\def\annexlabelwidth{6.2em}
+\def\appendixlabelbox#1{\hbox to\appendixlabelwidth{Apêndice~#1~---~\hss}}
+\def\annexlabelbox#1{\hbox to\annexlabelwidth{Anexo~#1~---~\hss}}
-\def\appendixlabelbox#1{\hbox to\appendixlabelwidth{Apêndice~#1~---~\hfil}}
-\def\annexlabelbox#1{\hbox to\annexlabelwidth{Anexo~#1~---~\hfil}}
+\AddToHook{begindocument}{\pdfstringdefDisableCommands{%
+ \def\appendixlabelbox#1{Apêndice #1 }%
+ \def\annexlabelbox#1{Anexo #1 }%
+}}
-\def\l at appendix{\l at toci}
-\def\l at annex{\l at toci}
+\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\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 !------------------------------------------------
+\def\appendix#1{\newpage \global\advance\countappendix by1
+ \addtoext{toc}{appendix}{\protect\appendixlabelbox{\theappendix}#1}%
+ \heading{Apêndice~\theappendix~---~#1}%
+}
+\def\annex#1{\newpage \global\advance\countannex by1
+ \addtoext{toc}{annex}{\protect\annexlabelbox{\theannex}#1}%
+ \heading{Anexo~\theannex~---~#1}%
+}
+% \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
+% \end{code} !------------------------------------------------
+
% \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.
+% Se o pacote |csquotes| estiver carregado, ele definirá sua própria versão de |\enquote|, do contrário, o |abntexto| criará uma.
-% |bcode !------------------------------------------------
+% \begin{code} !------------------------------------------------
\AddToHook{begindocument}{%
\@ifpackageloaded{csquotes}{}{\protected\def\enquote#1{``#1''}}%
}
-\def\Enquote#1{\par\removelastskip
+\long\def\Enquote#1{\par\removelastskip
\vskip\baselineskip
{\noindent\leftskip=4cm \small #1\nbpar}%
\vskip\baselineskip
}
-% |ecode !------------------------------------------------
+% \end{code} !------------------------------------------------
% \sec ALÍNEAS
-% 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.
+% Estas linhas não foram baseadas no ambiente |list| do LaTeX, portanto não podem ser personalizadas por pacotes como |enumitem|, por exemplo.
-% |bcode !------------------------------------------------
+% \begin{code} !------------------------------------------------
\newcount\counttopicsdepth
\newcount\counttopics
+\newcount\countsubtopics
-\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\counttopics )}
+\def\thetopics{\@alph\counttopics}
+\def\thesubtopics{\the\countsubtopics}
+
+\def\topicslabeli{\thetopics)}
\def\topicslabelii{---}
-\def\topics{\par\penalty51 \advcount\counttopicsdepth
+\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}%
+ \edef\topicsmakelabel{\expandafter\noexpand
+ \csname topicslabel\romannumeral\counttopicsdepth\endcsname}%
\let\item=\topicsitem
- \tnba at addto\@esphack\ignorespaces
+ \expandafter\def \expandafter\@esphack \expandafter{\@esphack\ignorespaces}%
}
\def\endtopics{\par}
-% |ecode !------------------------------------------------
-% |bcode !------------------------------------------------
+\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} !------------------------------------------------
-\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 |article| o ambiente |table| inicia o modo flutuante, mas nesta classe ele é sinônimo de |tabular| porque faz mais sentido para min.
-% |bcode !------------------------------------------------
+% \begin{code} !------------------------------------------------
+\let\table=\undefined \let\endtable=\undefined
\newenvironment{table}[1]{\begin{tabular}{#1}}{\end{tabular}}
-% |ecode !------------------------------------------------
+% \end{code} !------------------------------------------------
% \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\definelegendplace#1#2#3#4#5{\expandafter\newcount\csname count#1\endcsname
+% \begin{code} !------------------------------------------------
+\def\definelegendplace#1#2#3#4{\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}%
+ \expandafter\edef\csname the#1\endcsname
+ {\noexpand\the\csname count#1\endcsname}%
+ \expandafter\edef\csname cf#1\endcsname
+ {\unexpanded{#3}\expandafter\noexpand\csname the#1\endcsname}%
+ \@namedef{#1ext}{#4}%
+ \expandafter\edef\csname l@#4i\endcsname
+ {\noexpand\extline{0pt}{\csname #4labelwidth\endcsname}{\expandafter\noexpand\csname #4ifont\endcsname}}%
+ \@namedef{#4labelwidth}{5.4em}%
+ \@namedef{#4labelbox}##1{\hbox to\csname #4labelwidth\endcsname{#2~##1~---\hss}}%
+ \AddToHook{begindocument}{%
+ \pdfstringdefDisableCommands{\@namedef{#4labelbox}##1{##1 }}%
+ }%
+ \@namedef{#4ifont}##1{##1}%
+ \@namedef{make#4}{\makeext{#4}}%
}
-% |ecode !------------------------------------------------
+% \end{code} !------------------------------------------------
-% |bcode !------------------------------------------------
-\def\tnba at makelegend{\hbox to\hsize{\hfil\tnba at makelegendA\hfil}}
-\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}%
+% \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
+ \hangfrom\legendlabel #1%
+ \par\xdef\savedprevdepth{\the\prevdepth}%
}%
- \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}}%
+ \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\tnba at makesrc{\hbox to\hsize{\hfil\tnba at makesrcA\hfil}\tnba at useprevdepth}
-\def\tnba at makesrcA{\vtop{\hsize=\tnba at placewidth \srclabel
- \vtop{\setbox0=\hbox{\srclabel}\advance\hsize-\wd0 \tnba at savedsrc \tnba at getprevdepth}}%
+\def\place#1{\par \vskip\aboveplace\relax
+ \parindent=0pt\parskip=0pt
+ \ifx\empty\savedplace\else \printlegend\savedlegend \fi
+ \printplace{#1}%
+ \printsrc\savedsrc
+ \resetplace
+ \vskip\belowplace\relax
}
-% |ecode !------------------------------------------------
+\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{}%
+}
-% |bcode !------------------------------------------------
-\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\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\legendname{\csname \tnba at savedplace name\endcsname}
-\def\thelegend{\the\csname count\tnba at savedplace\endcsname}
+\def\src#1{\ifdim\lastskip>0pt \vskip-\lastskip\fi
+ \ifx\empty#1\else \def\savedsrc{#1}\fi
+ \ignorespaces
+}
-\def\src#1{\removelastskip \def\tnba at savedsrc{#1}}
-% |ecode !------------------------------------------------
+\def\legendname{\csname \savedplace name\endcsname}
+\def\thelegend{\the\csname count\savedplace\endcsname}
-% |bcode !------------------------------------------------
-\let\tnba at savedplace=\empty
-\let\tnba at savedlegend=\empty
-\let\tnba at savedsrc=\empty
+\def\savedlegend{}
+\def\savedplace{}
+\def\savedsrc{}
-\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
- \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=\empty
+\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
}
-% |ecode !------------------------------------------------
+\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.
-% |bcode !------------------------------------------------
-\let\footnotesize=\relax
+% \begin{code} !------------------------------------------------
\def\@makefnmark{\hbox{\@textsuperscript{\selectfont\@thefnmark}}}
\def\@makefntext#1{\hangfrom{\@makefnmark\kern2pt}\small #1}
\def\footnoterule{\kern18pt \hrule width5cm \kern2.6pt }
-% |ecode !------------------------------------------------
+% \end{code} !------------------------------------------------
% \sec IDENTIFICAÇÃO DO TRABALHO
-% |bcode !------------------------------------------------
-\def\Enter{\@ifnextchar[\tnba at EnterS{\tnba at EnterS[]}}
-\def\tnba at EnterS[#1]{\vskip#1\baselineskip}
-
+% \begin{code} !------------------------------------------------
+\def\Enter{\@ifnextchar[\tnba at Enter{\tnba at Enter[]}}
+\def\tnba at Enter[#1]{\vskip#1\baselineskip}
\def\twonewpage{\newpage\leavevmode\newpage}
-\long\def\indexcard#1{\hbox{\vrule\vbox to7.5cm{\hsize=12.5cm \advance\hsize by-2cm \advance\hsize by-0.8pt
+\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#1\vss}\hss}%
+\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{\par {\centering \rule{.7\linewidth}{.6pt}\\ #1\Enter[1.5]}}
+\def\judgeline#1{{\centering \rule{.7\linewidth}{.6pt}\\ #1\par}\Enter[1.5]}
+% \end{code} !------------------------------------------------
-\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.
+% 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 \pkg{icomma}.
+% As linhas abaixo são uma cópia da implementação do pacote |icomma|.
-% |bcode !------------------------------------------------
-{\catcode`,=\active
+% \begin{code} !------------------------------------------------
+{\catcode`,=13
\gdef,{\futurelet\@let at token\tnba at smartcomma}
}
\def\tnba at smartcomma{%
@@ -583,13 +711,15 @@
\tnba at mathcomma
}
-\mathchardef\tnba at mathcomma\mathcode`\,
-\mathcode`\,="8000
-% |ecode !------------------------------------------------
+\AddToHook{begindocument}{%
+ \mathchardef\tnba at mathcomma=\mathcode`\,%
+ \mathcode`\,="8000
+}
+% \end{code} !------------------------------------------------
-% Abaixo está definido um ajuste para que o \pkg{hyperref} não crie conflitos com \cs\MakeUppercase\ nas entradas do sumário.
+% Abaixo está definido um ajuste para que o |hyperref| não crie conflitos com |\MakeUppercase| nas entradas do sumário.
-% |bcode !------------------------------------------------
+% \begin{code} !------------------------------------------------
\iftnba at XETEX \else
\AddToHook{begindocument/before}{
\let\tnba at hyper@linkstart=\hyper at linkstart
@@ -596,24 +726,22 @@
\protected\def\hyper at linkstart#1#2{\lowercase{\tnba at hyper@linkstart{#1}{#2}}}
}
\fi
-% |ecode !------------------------------------------------
+% \end{code} !------------------------------------------------
% \sec COMANDOS OBSOLETOS
-% O \pkg{abntexto} emitirá um aviso ou erro caso um destes comandos esteja obsoleto ou inexistente.
+% O |abntexto| emitirá um aviso ou erro caso um destes comandos esteja obsoleto ou inexistente.
-% |bcode !------------------------------------------------
+% \begin{code} !------------------------------------------------
\def\tnba at undefcmd#1{\def#1{\tnba at error{%
- O comando ''\string#1'' não existe mais. Linha \the\inputlineno
+ O comando "\noexpand#1" não existe mais%
}}}
\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
+ O comando "\noexpand#1" é obsoleto, use "\unexpanded{#2}" ao invés%
}}}
-\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 undefcmd \advcount
\tnba at obscmd \sectionuppercase {\def\sectionfont{\MakeUppercase}}
\tnba at obscmd \tociuppercase {\def\tocifont{\MakeUppercase}}
@@ -622,50 +750,43 @@
\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 \fontsizedef \definefontsize
+\tnba at obscmd \paper \setlayout
+\tnba at obscmd \papersizedef \definepapersize
+\tnba at obscmd \startseci \printsection
+\tnba at obscmd \startsecii \printsubsection
+\tnba at obscmd \startseciii \printsubsubsection
+\tnba at obscmd \startseciv \printparagraph
+\tnba at obscmd \startsecv \printsubparagraph
+\tnba at obscmd \qt \enquote
+\tnba at obscmd \quote \Enquote
+% \end{code} !------------------------------------------------
-\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 |abntexto| define as configurações padrões. Note que |\pretextual| deve ser carregado após |\begin{document}| para evitar múltiplas chamadas deste, caso seja redefinido pelo usuário ou escritor de pacotes.
-% |bcode !------------------------------------------------
-\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
-}
-
+% \begin{code} !------------------------------------------------
\definefontsize{12pt}{%
- \sizedef\normalsize{12pt}{14.5pt}{\setnormalsize}%
- \sizedef\small{10pt}{12pt}{\setsmall}%
+ \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
+ }%
}
\setfontsize{12pt}
\spacing{1.5}
-\definepapersize{A4}{210mm}{297mm}
-
-\setlayout{
- paper=A4,
+\geometry{
+ a4paper,
left=3cm,
top=3cm,
right=2cm,
@@ -676,18 +797,23 @@
\parindent=0pt
\parskip=0pt
-\def\tocifont {\bfseries\MakeUppercase}
-\def\tociifont {\itshape}
-\def\tociiifont {\scshape}
-\def\tocivfont {}
-\def\tocvfont {}
+\def\maintocfont {\tocsectionfont}
-\def\sectionfont {\bfseries\MakeUppercase}
-\def\subsectionfont {\itshape}
-\def\subsubsectionfont {\scshape}
-\def\paragraphfont {}
-\def\subparagraphfont {}
+\def\tocpartfont #1{\bfseries\MakeUppercase{#1}}
+\def\tocchapterfont #1{\bfseries\MakeUppercase{#1}}
+\def\tocsectionfont #1{\bfseries\MakeUppercase{#1}}
+\def\tocsubsectionfont #1{\itshape#1}
+\def\tocsubsubsectionfont #1{\scshape#1}
+\def\tocparagraphfont #1{#1}
+\def\tocsubparagraphfont #1{#1}
+\def\sectionfont #1{\bfseries\MakeUppercase{#1}}
+\def\subsectionfont #1{\itshape#1}
+\def\subsubsectionfont #1{\scshape#1}
+\def\paragraphfont #1{#1}
+\def\subparagraphfont #1{#1}
+
+\def\abovechapter {50pt}
\def\abovesection {\baselineskip}
\def\abovesubsection {\baselineskip}
\def\abovesubsubsection {\baselineskip}
@@ -694,6 +820,7 @@
\def\aboveparagraph {\baselineskip}
\def\abovesubparagraph {\baselineskip}
+\def\belowchapter {40pt}
\def\belowsection {\baselineskip}
\def\belowsubsection {\baselineskip}
\def\belowsubsubsection {\baselineskip}
@@ -700,26 +827,28 @@
\def\belowparagraph {\baselineskip}
\def\belowsubparagraph {\baselineskip}
-\definelegendplace{figure}{Figura}{Lista de figuras}{fig.\,#1}{lof}
-\definelegendplace{table}{Tabela}{Lista de tabelas}{tab.\,#1}{lot}
+\definelegendplace{figure}{Figura}{fig.\,}{lof}
+\definelegendplace{table}{Tabela}{tab.\,}{lot}
-\def\legendlabel{\legendname ~\thelegend ~---~}
-\def\srclabel{\raggedright\small Fonte:~}
-\def\legendmaxwidth{0.7\linewidth}
+\def\legendlabel{\legendname\ \thelegend\ ---~}
+\def\sublegendlabel{(\@alph\@tempcnta)~}
+\def\srclabel{Fonte:~}
+\def\legendmaxwidth{.7\linewidth}
\def\aboveplace{\baselineskip}
\def\belowplace{\baselineskip}
-\def\toclabelwidth{3.4ex}
-\def\maketoc{\heading{Sumário} \makeext{toc}\newpage}
+\def\toclabelwidth{2em}
+\def\lotlabelwidth{5.5em}
+\def\loflabelwidth{5.5em}
+\def\appendixlabelwidth{9.2em}
+\def\annexlabelwidth{7.3em}
+\def\maketoc{\makeext{toc}}
+
\def\topicslabelwidth{4ex}
-\arrayrulewidth=0.4pt
-
-\topskip=12pt
-
\AddToHook{begindocument}{\pretextual}
\endinput
-% |ecode !------------------------------------------------
+% \end{code} !------------------------------------------------
More information about the tex-live-commits
mailing list.