diff options
author | Norbert Preining <norbert@preining.info> | 2022-09-26 03:03:51 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2022-09-26 03:03:51 +0000 |
commit | 3416c5679e9cfa1ebba2296ecf401319a9f1cfe6 (patch) | |
tree | f451ec530b29856ea00420cb41b85943ade67d10 /macros/latex/contrib/abntexto | |
parent | ce8083552e0d948bf495e72d5c4d2680b505c90b (diff) |
CTAN sync 202209260303
Diffstat (limited to 'macros/latex/contrib/abntexto')
-rw-r--r-- | macros/latex/contrib/abntexto/README | 7 | ||||
-rw-r--r-- | macros/latex/contrib/abntexto/abntexto-manual.pdf | bin | 0 -> 148750 bytes | |||
-rw-r--r-- | macros/latex/contrib/abntexto/abntexto-manual.tex | 254 | ||||
-rw-r--r-- | macros/latex/contrib/abntexto/abntexto.cls | 591 |
4 files changed, 852 insertions, 0 deletions
diff --git a/macros/latex/contrib/abntexto/README b/macros/latex/contrib/abntexto/README new file mode 100644 index 0000000000..1ca1cc0bee --- /dev/null +++ b/macros/latex/contrib/abntexto/README @@ -0,0 +1,7 @@ +Public Domain Software +2022-09-25 +1.0.0-alpha +Elayson +elaysonabreu@gmail.com + +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 diff --git a/macros/latex/contrib/abntexto/abntexto-manual.pdf b/macros/latex/contrib/abntexto/abntexto-manual.pdf Binary files differnew file mode 100644 index 0000000000..236d447268 --- /dev/null +++ b/macros/latex/contrib/abntexto/abntexto-manual.pdf diff --git a/macros/latex/contrib/abntexto/abntexto-manual.tex b/macros/latex/contrib/abntexto/abntexto-manual.tex new file mode 100644 index 0000000000..2038eed5d1 --- /dev/null +++ b/macros/latex/contrib/abntexto/abntexto-manual.tex @@ -0,0 +1,254 @@ +\documentclass{abntexto} + +\makeatletter + +\usepackage[brazil]{babel} +\usepackage[T1]{fontenc} +\usepackage[varqu,varl,scale=0.85]{inconsolata} +\usepackage[matchlowercase]{tgheros} \renewcommand\familydefault\sfdefault +\usepackage{lipsum} \def\lip{\lipsum[1][1-2]} +\usepackage{graphicx} +\usepackage{xcolor} +\usepackage[colorlinks]{hyperref} + +% MARKUP DEFS +% ================================================ + +\def\cs#1{{\ttfamily \string#1}} +\def\meta#1{\textsf{⟨\textit{\fontseries{c}\selectfont #1}⟩}} % ⟨#1⟩ +\def\cc#1{{\ttfamily \{\meta{#1}\}}} +\def\kk#1{{\ttfamily [\meta{#1}]}} + +\def\arg{\cc{arg}} +\def\opt{\kk{opt}} +\def\argi{\cc{argi}} +\def\argii{\cc{argii}} +\def\argiii{\cc{argiii}} +\def\opti{\kk{opti}} +\def\optii{\kk{optii}} +\def\optiii{\kk{optiii}} +\def\ccval#1{{\ttfamily \{#1\}}} +\def\kkval#1{{\ttfamily [#1]}} +\def\cls#1{\textsf{\textit{#1}}} +\def\pkg#1{\texttt{#1}} + +% VERBATIM +% ================================================ + +\def\adef#1{\catcode`#1=13 \begingroup \lccode`\~=`#1\lowercase{\endgroup\def~}} +\def\dodef#1{\catcode`#1=12 } +\def\verbcatcodes{\let\do=\dodef \dospecials\obeyspaces\catcode`\%=14 } + +\long\def\verbon{\par\begingroup \verbcatcodes + \catcode`\|=0 % escape char + \adef\^^I{\space\space\space\space}\adef\^^M{\par\leavevmode}% + \startverb +} +{\catcode`\|=0 \catcode`\\=12 + |long|gdef|startverb#1\verboff{|verbbox{#1}|par|endgroup |verbreset} +} +\def\verbbox#1{\def\tnba@placewidth{\hsize \advance\hsize-3cm}% + \ifx\tnba@savedplace\empty \else \vskip\placeabovespace \fi + \parindent=0pt + \ifx\tnba@savedplace\empty\else\tnba@makelegend\fi + \nobreak\par\nointerlineskip \kern10pt + {\verbfont{#1}}% + \nobreak\nointerlineskip + \ifx\tnba@savedsrc\empty \else \tnba@makesrc \vskip\placebelowspace \fi +} +\def\verbreset{% + \let\tnba@savedplace=\empty + \let\tnba@savedlegend=\empty + \let\tnba@savedsrc=\empty + \let\@currentlabel=\relax +} +\long\def\verbfont{\raggedright\leftskip=6pt \singlesp\ttfamily\@noligs\leftframed} +\long\def\leftframed#1{\setbox0=\vtop{#1}% + \hbox{{\color{graybar}\kern1.5cm\vrule width1pt}\box0}% +} + +% PERSONAL DEFS +% ================================================ + +\sizeselectordef\large{14pt}{17pt} +\sizeselectordef\Large{22pt}{25pt} +\sizeselectordef\LARGE{25pt}{30pt} + +\definecolor{graybar}{gray}{0.75} +\definecolor{graycomment}{gray}{0.55} + +\legendplacedef{verb}{Verbatim}{verb.\,#1}{lov} + +\def\me{o autor.} + +\tocilowercase +\sectionlowercase + +\clubpenalty=10000 +\widowpenalty=10000 + +\makeatother + + + +\begin{document} + +\leavevmode\vskip1.9in + +{\centering \LARGE\sffamily\bfseries + abntexto\\[0.4em] \Large\itshape\mdseries + Classe para {\upshape\LaTeX}\\[2em] \normalfont\large + Elayson\\[1ex] + \href{mailto:elaysonabreu@gmail.com}{elaysonabreu@gmail.com}\\[2.5ex] + \today\par} + +\vskip3in + +{\centering \large\ttfamily 1.0.0-alpha\par} + +\newpage + +\maketoc + +\textual + +\section{Apresentação} + +O \cls{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 \href{https://www.ctan.org/pkg/latex-via-exemplos}{\LaTeXe\ Via Exemplos} ou \href{https://www.ctan.org/pkg/latex2e-help-texinfo}{\LaTeXe: An unofficial reference manual}, disponível também em francês. Além disso, também se pode ler \href{https://www.ctan.org/pkg/texbytopic}{\TeX\ by Topic} para aprender sobre o sistema \TeX. + +Já existe uma classe para aplicação das normas ABNT cujo nome é \cls{abntex2}. Mas, diferente desta, o \cls{abntexto} não depende do \cls{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 \cls{abntexto} se propõe a seguir são aquelas em vigor até o momento da criação deste manual. + +\section{Chamando a classe} + +Digite as linhas em \ref{vb:início} e use \cls{abntexto}. + +\legend{verb}{Início} \src\me +\label{vb:início} +\verbon +\documentclass{abntexto} + +\usepackage[brazil]{babel} |% para obter os padrões de hifenização corretos +\usepackage[T1]{fontenc} +\usepackage{newtxtext} |% fontes New TX, com estilo times +\usepackage{newtxmath} + +\begin{document} + Texto +\end{document}% +\verboff + +\section{Fonte tipográfica} + +O tamanho da fonte é 12\,pt de imediato e pode ser configurado com o comando \cs\setfontsize\arg\ sendo que 12\,pt é a única opção disponível. Mas, se você deseja outro tamanho de fonte, crie-o usando \cs\fontsizedef\cc{size}\cc{defs}. Além disso, com os seletores de tamanho \cs\normalsize\ e \cs\small\ que configuram 12\,pt e 10\,pt, nessa ordem, é possível mudar o tamanho da fonte no corpo do documento. + +O espaçamento é de um e meio e pode ser alterado para dois com \cs\spacing\ccval{2}, por exemplo. Os atalhos \cs\singlesp, \cs\onehalfsp\ e \cs\doublesp\ estão disponíveis. Note que o espaçamento simples não tem o mesmo valor que o espaçamento um, portanto, \cs\singlesp\ é diferente de \cs\spacing\ccval{1}! Os atalhos \cs\onehalfsp\ e \cs\doublesp\ tem o mesmo significado de \cs\spacing\ccval{1.5} e \cs\spacing\ccval{2}. + +\section{\emph{Layout}} + +A folha é A4 por padrão e as margens esquerda e direita são de 3\,cm, 2\,cm para páginas ímpares e de 2\,cm, 3\,cm para páginas pares, respectivamente. Além disso, as margens superior e inferior têm, nessa ordem, 3\,cm, 2\,cm para todo o documento. Todas essas medidas podem ser alteradas com a macro \cs\paper\ que deve ser usada assim: \cs\paper\ccval{left=0cm,right=0cm,top=0cm,botttom=0cm}. + +Além das chaves anteriores também existe \cs{twoside} que é booleana, ou seja, aceita os valores \cs{true} ou \cs{false} e serve para ativar o modo de impressão em duas folhas aonde as medidas das margens horizontais se invertem nas páginas pares. Ao não informar um valor para \cs{twoside} subentende-se que seja \cs{true}, portanto \cs\paper\ccval{twoside} equivale a \cs\paper\ccval{twoside=true} e esse princípio também se aplica a outras chaves booleanas. + +\section{Sumário} + +Os comandos que mudam a fonte das entradas no ToC (Table of Contents, em inglês) são \cs\tocifont, \cs\tociifont, \dots, \cs\tocvfont\ (ver \ref{vb:contents}). + +\legend{verb}{Aparência do sumário} \src\me +\label{vb:contents} +\verbon +\documentclass{abntexto} + +\usepackage{color} + +\tocifont{\color{red}\itshape} +\tociifont{\color{blue}\bfseries} + +\begin{document} + \maketoc + + \section{Título} + \subsection{Título} +\end{document}% +\verboff + +\section{Secionamento} + +A personalização das macros de seção (\cs\section, \cs\subsection\ etc.) é análoga a personalização do sumário e deve ser feita com \cs\sectionfont, \cs\subsectionfont, etc. como exemplificado em \ref{vb:sec}. + +Também há como alterar o espaço vertical acima e abaixo das seções usando \cs\sectionspaces, \cs\subsectionspaces, etc. Por exemplo, \cs\sectionspaces\ccval{2ex}\ccval{1cm} insere um espaço de 2ex acima de \cs\section\ e 1cm abaixo. + +\legend{verb}{Aparência das seções} \src\me +\label{vb:sec} +\verbon +\documentclass{abntexto} + +\usepackage{color} + +\sectionfont{\color{blue}\scshape} +\subsectionfont{\color{red}\slshape} +\subsubsectionfont{\color{yellow}\sffamily} + +\begin{document} + \maketoc + + \section{Texto} + \subsection{Texto} + \subsubsection{Texto} +\end{document}% +\verboff + +\section{Alíneas} + +Use o ambiente \cs{topics} para criar alíneas. Ele dispõe de dois níveis sendo que o segundo usa um travessão como marcador conforme o exemplo em \ref{vb:topics}. Naturalmente o uso de \cs\label\ é permitido. + +\legend{verb}{Alíneas} \src\me +\label{vb:topics} +\verbon +\begin{topics} + \item \label{alínea:x} 1 + \begin{topics} + \item x + \item y + \item z + \end{topics} + \item \label{alínea:y} 2 + \item 3 +\end{topics}% +\verboff + +\section{Áreas de legenda} + +Use \cs\place\ para inserir áreas de legenda como mostrado em \ref{vb:place}. Mas existem condições: \cs\place\ deve vir por último e \cs\label\ precisa estar depois de \cs\legend. Além disso, existe a possibilidade de alterar o espaço vertical acima e abaixo de uma área de legenda com \cs\placespaces\cc{aboveskip}\cc{belowskip}. + +\legend{verb}{Áreas de legenda} \src\me +\label{vb:place} +\verbon +\usepackage{graphicx} + +\begin{document} + \legend{figure}{Um título} + \src{\texttt{www.site.com.br}. Acesso em 01 jan. 2020.} + \label{fig:teste} + \place{\includegraphics[width=0.4\linewidth]{example-image}} + + Ver \ref{fig:teste}. +\end{document}% +\verboff + +\section{Formatação de {\ttfamily\protect\textbackslash cite} e referências} + +Até o momento esta classe não possui macros para formatação de \cs\cite\ e referências. Utilize \cs{\usepackage\{abnt2cite\}} ou \cs{\usepackage[style=abnt]\{biblatex\}}. + +\section{Citações} + +Para inserir aspas em citações diretas use \cs\qt\cc{texto}. Mas, se tratando de citações diretas com mais de três linhas, alterne para \cs\quote\ccval{enquoted text \cs\cite\cc{key}}. + +\section{Código-fonte} + +Em progresso\dots + +\end{document} diff --git a/macros/latex/contrib/abntexto/abntexto.cls b/macros/latex/contrib/abntexto/abntexto.cls new file mode 100644 index 0000000000..09e3cf9750 --- /dev/null +++ b/macros/latex/contrib/abntexto/abntexto.cls @@ -0,0 +1,591 @@ +%! Public Domain Software +%! 2022-09-25 +%! 1.0.0-alpha +%! Elayson +%! elaysonabreu@gmail.com + +%! SUMÁRIO + +%! PRÉ-CONFIGURAÇÕES +%! FONTES +%! LAYOUT +%! SUMÁRIO +%! SECIONAMEMTO +%! CITAÇÕES +%! ALÍNEAS +%! TABELAS +%! ÁREAS DE LEGENDA +%! UTILIDADES +%! IDENTIFICAÇÃO DO TRABALHO +%! PATCHS, HOOKS +%! INICIALIZAÇÃO + +% |sec PRÉ-CONFIGURAÇÕES +% !======================================================= + +% Identificação do formato |TeX| e da classe. Apenas o pacote |pkg=keyval= é carregado nesta classe. + +% |bcode !------------------------------------------------ +\NeedsTeXFormat{LaTeX2e} + +\ProvidesClass{abntexto}[2022-09-25 1.0.0-alpha Preparation of works in ABNT standards] + +\RequirePackage{keyval} +% |ecode !------------------------------------------------ + +% Macros auxiliares e sistema |dest=<key|eq val>=. + +\ifx\csstring\undefined + \def\tnba@csstring#1{\expandafter\tnba@csstringA\string#1//} + \def\tnba@csstringA#1#2//{#2} +\else + \let\tnba@csstring=\csstring +\fi + +% Definição do sistema |dest=keyval= e de um comando de |dest=debug=. + +% |bcode !------------------------------------------------ +\def\tnba@keyprefix{tnba} + +\def\tnba@key{\define@key{\tnba@keyprefix @\tnba@keyfamily}} +\def\tnba@setkeys{\setkeys{\tnba@keyprefix @\tnba@keyfamily}} +\def\tnba@setmacrokeys#1{\setkeys{\tnba@keyprefix @#1}} + +\def\advancecount#1{\global\advance#1by1 } +\edef\tnba@bslash{\tnba@csstring\\} +\def\tnba@addto#1#2{\expandafter\def\expandafter#1\expandafter {#1#2}} +\def\tnba@tobdocument{\tnba@addto\tnba@bdocumenthook} + +\AddToHook{begindocument}{\def\tnba@bdocument{}} + +\def\tnba@error{\ClassError{abntexto}} +% |ecode !------------------------------------------------ + +% |sec FONTES +% !================================================ + +\def\tnba@inputfonts#1{\@namedef{tnba@fonts@#1}} + +\tnba@inputfonts{Latin Modern}{\usepackage{amssymb,lmodern,bm}} + +\tnba@inputfonts{helvetica-clone}{\def\sfdefault{qhv}\def\familydefault{\sfdefault}} +\tnba@inputfonts{palatino-clone}{\usepackage{newpxtext,newpxmath,bm}} +\tnba@inputfonts{timesnewroman-clone}{\usepackage{newtxtext,newtxmath,bm}} + +\def\fonts#1{\ifcsname tnba@fonts@#1\endcsname + \csname tnba@fonts@#1\endcsname \else + \tnba@error{Fonte *#1* desconhecida}\relax \fi +} + +% Apenas o tamanho 12|,pt está definido. Defina outros usando |cs=fontsizedef=|metac=size=|metac=defs=. + +% |bcode !------------------------------------------------ +\def\fontsizedef#1#2{\@namedef{tnba@fontsize@#1}{#2}} +\def\sizeselectordef#1#2#3{\DeclareRobustCommand#1{\@setfontsize#1{#2}{#3}}} +\def\setfontsize#1{\ifcsname tnba@fontsize@#1\endcsname + \def\tnba@setfontsizehook{\csname tnba@fontsize@#1\endcsname} \else + \let\normalsize=\relax + \tnba@error{Tamanho de fonte *#1* desconhecido}{}\relax \fi +} + +\AddToHook{begindocument/before}{\tnba@setfontsizehook} +% |ecode !------------------------------------------------ + +\def\spacing#1{\ifx\tnba@bdocument\undefined + \def\tnba@spacinghook{\tnba@spacing{#1}} \else + \tnba@spacing{#1}\fi \ignorespaces +} +\def\tnba@spacing#1{\dimen0=\f@size pt \dimen0=#1\dimen0 \baselineskip=\dimen0 } + +\def\singlesp{\baselineskip=\normalbaselineskip} +\def\onehalfsp{\spacing{1.5}} +\def\doublesp{\spacing{2}} + +\AddToHook{begindocument}{\csname tnba@spacinghook\endcsname} + +% LAYOUT +% ================================================ + +\def\tnba@keyfamily{paper} + +\def\papersizedef#1(#2,#3){\def\tnba@keyfamily{paper}% + \tnba@key{#1}[]{\def\tnba@W{#2}\def\tnba@H{#3}}% +} + +\tnba@key{width} {\def\tnba@W{#1}} +\tnba@key{height} {\def\tnba@H{#1}} +\tnba@key{left} {\def\tnba@L{#1}} +\tnba@key{right} {\def\tnba@R{#1}} +\tnba@key{top} {\def\tnba@T{#1}} +\tnba@key{bottom} {\def\tnba@B{#1}} +\tnba@key{twoside}[true]{\def\tnba@twoside{#1}} + +\def\paper#1{\tnba@setmacrokeys{paper}{#1}% + \paperwidth=\tnba@W + \paperheight=\tnba@H + \oddsidemargin=\tnba@L + \evensidemargin=\tnba@R + \topmargin=\tnba@T + \textwidth=\paperwidth + \textheight=\paperheight + \headheight=12pt + \headsep=1cm + \advance\topmargin-\headheight \advance\topmargin-\headsep + \advance\textwidth-\tnba@L \advance\textwidth-\tnba@R + \advance\textheight-\tnba@T \advance\textheight-\tnba@B + \advance\headsep-\fontcharht\font`1 + \ifx\pdfpagewidth\undefined + \ifx\pagewidth\undefined + \tnba@error{O comando \tnba@bslash paper só suporta saída em PDF. Use o formato PDF ou carregue o pacote *geometry*}\expandafter\enddocument\relax \else + \horigin=0pt + \vorigin=0pt + \pagewidth=\paperwidth + \pageheight=\paperheight + \fi + \else + \ifx\pdfhorigin\undefined + \advance\oddsidemargin-1in + \advance\topmargin-1in + \pdfpagewidth=\paperwidth + \pdfpageheight=\paperheight + \else + \pdfhorigin=0pt + \pdfvorigin=0pt + \pdfpagewidth=\paperwidth + \pdfpageheight=\paperheight + \fi + \fi + \ifx\tnba@twoside\undefined \else + \csname @twoside\tnba@twoside\endcsname \fi +} + +\def\pretextual{\paper{twoside=false}% + \let\@oddhead=\empty + \let\@evenhead=\empty + \let\@oddfoot=\empty + \let\@evenfoot=\empty +} +\def\textual{\paper{twoside=true}% + \def\@oddhead{{\itshape\rightmark}\hfil{\small\thepage}}% + \def\@evenhead{{\small\thepage}\hfil\itshape\leftmark}% + \let\@oddfoot=\empty + \let\@evenfoot=\empty + \justifying + \parindent=1.5cm +} + +% SUMÁRIO +% ================================================ + +\def\thepage{\the\c@page} +\def\noprotrusion{\kern-1pt\kern1pt} +\def\extfile#1{\@starttoc{#1}} + +\def\extline#1#2#3#4{% + \begingroup + \csname use#1\romannumeral#2font\endcsname \nobreak + \extlineshape + \hskip-\leftskip {#3}\nobreak + \leaders\hbox{$\m@th \mkern4.5mu\hbox{.}\mkern4.5mu$}\hfil\nobreak + \hbox to1.55em{\hss #4\noprotrusion}\par + \endgroup +} +\def\extlineshape{% + \parindent=0pt + \leftskip=\extlabelwidth + \rightskip=2.55em + \parfillskip=-\rightskip + \interlinepenalty=10000 + \leavevmode +} + +\def\l@section#1#2{\smartaboveskip{\penalty351}{\vskip1em plus1pt}% + \begingroup + \usetocifont \nobreak + \extlineshape + \hskip-\leftskip \maybeuctoc{#1}\nobreak\hfil\nobreak + \hbox to1.55em{\hss #2\noprotrusion}\par + \endgroup +} +\def\l@subsection {\extline{toc}{2}} +\def\l@subsubsection {\extline{toc}{3}} +\def\l@paragraph {\extline{toc}{4}} +\def\l@subparagraph {\extline{toc}{5}} + +\def\tocifont#1{\def\usetocifont{#1}} +\def\tociifont#1{\def\usetociifont{#1}} +\def\tociiifont#1{\def\usetociiifont{#1}} +\def\tocivfont#1{\def\usetocivfont{#1}} +\def\tocvfont#1{\def\usetocvfont{#1}} + +% SECIONAMENTO +% ================================================ + +\def\tnba@nbpar{\interlinepenalty=10000\par} +\def\noindentfirst{\global\everypar={\tnba@wipeepar \setbox7=\lastbox}} +\def\tnba@wipeepar{\global\everypar={}} + +\newskip\savedtitleskip +\newskip\savedlastskip + +\def\smartaboveskip#1#2{\savedlastskip=\lastskip + \ifdim\lastskip>\z@ \vskip-\lastskip \fi + \ifnum\lastpenalty=11333 \vskip-\savedtitleskip \else #1\fi + \ifdim\savedlastskip>\z@ \setbox0=\vbox{#2\global\dimen0=\lastskip}% + \else \dimen0=\maxdimen \fi + \ifdim\savedlastskip>\dimen0 \vskip\savedlastskip \else #2\fi +} +\def\smartbelowskip#1{#1\global\savedtitleskip=\lastskip \penalty11333} + +\newcount\sectioncount +\newcount\subsectioncount +\newcount\subsubsectioncount +\newcount\paragraphcount +\newcount\subparagraphcount + +\def\thesection{\the\sectioncount} +\def\thesubsection{\thesection .\the\subsectioncount} +\def\thesubsubsection{\thesubsection .\the\subsubsectioncount} +\def\theparagraph{\thesubsubsection .\the\paragraphcount} +\def\thesubparagraph{\theparagraph .\the\subparagraphcount} + +\def\sectionmark#1{} +\def\subsectionmark#1{} +\def\subsubsectionmark#1{} +\def\paragraphmark#1{} +\def\subparagraphmark#1{} + +\def\section#1{\par \smartaboveskip{\penalty351}{\vskip\sectionabove}\noindent + \advancecount\sectioncount + \setbox0=\hbox{\usesectionfont \thesection\quad}% + {\usesectionfont \hangindent=\wd0 \box0 \maybeucsec{#1}\tnba@nbpar}% +% \noindentfirst + \addcontentsline{toc}{section}{\protect\extlabelbox{\thesection\hss}#1}% + \nobreak \smartbelowskip{\vskip\sectionbelow}% +} +\def\subsection#1{\par \smartaboveskip{\penalty351}{\vskip\subsectionabove}\noindent + \advancecount\subsectioncount + \setbox0=\hbox{\usesubsectionfont \thesubsection\quad}% + {\usesubsectionfont \hangindent=\wd0 \box0 #1\tnba@nbpar}% +% \noindentfirst + \addcontentsline{toc}{subsection}{\protect\extlabelbox{\thesubsection\hss}#1}% + \nobreak \smartbelowskip{\vskip\subsectionbelow}% +} +\def\subsubsection#1{\par \smartaboveskip{\penalty351}{\vskip\subsubsectionabove}\noindent + \advancecount\subsubsectioncount + \setbox0=\hbox{\usesubsubsectionfont \thesubsubsection\quad}% + {\usesubsubsectionfont \hangindent=\wd0 \box0 #1\tnba@nbpar}% +% \noindentfirst + \addcontentsline{toc}{subsubsection}{\protect\extlabelbox{\thesubsubsection\hss}#1}% + \nobreak \smartbelowskip{\vskip\subsubsectionbelow}% +} +\def\paragraph#1{\par \smartaboveskip{\penalty351}{\vskip\paragraphabove}\noindent + \advancecount\paragraphcount + \setbox0=\hbox{\useparagraphfont \theparagraph\quad}% + {\useparagraphfont \hangindent=\wd0 \box0 #1\tnba@nbpar}% +% \noindentfirst + \addcontentsline{toc}{paragraph}{\protect\extlabelbox{\theparagraph\hss}#1}% + \nobreak \smartbelowskip{\vskip\paragraphbelow}% +} +\def\subparagraph#1{\par \smartaboveskip{\penalty351}{\vskip\subparagraphabove}\noindent + \advancecount\subparagraphcount + \setbox0=\hbox{\subsubparagraphfont \thesubparagraph\quad}% + {\usesubparagraphfont \hangindent=\wd0 \box0 #1\tnba@nbpar}% +% \noindentfirst + \addcontentsline{toc}{subparagraph}{\protect\extlabelbox{\thesubparagraph\hss}#1}% + \nobreak \smartbelowskip{\vskip\subparagraphbelow}% +} + +\def\heading#1{\noindent + {\usesectionfont \centering \maybeucsec{#1}\tnba@nbpar}% +% \noindentfirst + \nobreak \vskip\sectionbelow +% \addcontentsline{toc}{section}{\hbox to\extlabelwidth{}\maybeuctoc{#1}}% +} + +\def\tociuppercase{\def\maybeuctoc{\MakeUppercase}} +\def\tocilowercase{\let\maybeuctoc=\relax} +\def\sectionuppercase{\def\maybeucsec{\MakeUppercase}} +\def\sectionlowercase{\let\maybeucsec=\relax} + +\def\sectionfont#1{\def\usesectionfont{#1}} +\def\subsectionfont#1{\def\usesubsectionfont{#1}} +\def\subsubsectionfont#1{\def\usesubsubsectionfont{#1}} +\def\paragraphfont#1{\def\useparagraphfont{#1}} +\def\subparagraphfont#1{\def\usesubparagraphfont{#1}} + +\def\sectionspaces#1#2{\def\sectionabove{#1}\def\sectionbelow{#2}} +\def\subsectionspaces#1#2{\def\subsectionabove{#1}\def\subsectionbelow{#2}} +\def\subsubsectionspaces#1#2{\def\subsubsectionabove{#1}\def\subsubsectionbelow{#2}} +\def\paragraphspaces#1#2{\def\paragraphabove{#1}\def\paragraphbelow{#2}} +\def\subparagraphspaces#1#2{\def\subparagraphabove{#1}\def\subparagraphbelow{#2}} + +% CITAÇÕES +% ================================================ + +\def\qt#1{``#1''} + +\def\quote#1{\smartaboveskip{\penalty351}{\vskip\baselineskip}% +\hfill\vtop{\advance\hsize-4cm \noindent\small #1\getprev}\useprev + \smartbelowskip{\vskip\baselineskip}% +} + +% ALÍNEAS +% ================================================ + +\newcount\topicsdepth +\newcount\topicscount + +\def\topicsindenti{\advance\leftskip\topicslabelwidth} +\def\topicsindentii{\advance\leftskip\topicslabelwidth \advance\leftskip\topicslabelwidth} +\def\topicslabelwidth{4ex} + +\def\topicsitem{\par\leavevmode\noindent \advance\topicscount by1 + \def\@currentlabel{alínea~\@alph\topicscount )}% + \kern\dimexpr-\parindent-\topicslabelwidth\relax + \hbox to\topicslabelwidth{\topicsmakelabel\hfil}% + \ignorespaces +} +\def\topicslabeli{\@alph\topicscount )} +\def\topicslabelii{---} + +\def\topics{\par \advance\topicsdepth by1 + \leftskip=\parindent + \csname topicsindent\romannumeral\topicsdepth\endcsname + \edef\topicsmakelabel{\expandafter\noexpand\csname topicslabel\romannumeral\topicsdepth\endcsname}% + \let\item=\topicsitem + \tnba@addto\@esphack\ignorespaces +} + +\let\endtopics=\par + +% |sec TABELAS +% ! ================================================ + +\newenvironment{table}[1]{\begin{tabular}{#1}}{\end{tabular}} + +% ÁREAS DE LEGENDA +% ================================================ + +%\long\def\@makecaption#1#2{\sbox0{#1~—~#2}% +% \ifdim\wd0>\hsize +% #1~—~#2\par \else +% \global\@minipagefalse \hbox to\hsize{\hss\box0\hss}% +% \fi +% \vskip10pt +%} +%\def\place#1#2#3{\@float{#1}\centering\caption{#2}#3\end@float} + +\def\tnba@lastplacenum{0} + +% \legendplacedef{<type>}{<name>}{<ref-font>}{<file-extension>} +\def\legendplacedef#1#2#3#4{\expandafter\newcount\csname c@#1\endcsname + \@namedef{#1name}{#2} + \@namedef{p@#1}##1{#3} + \@namedef{ext@#1}{#4} + \@namedef{l@#1}{\extline{#4}{1}} + \expandafter\edef\csname the#1\endcsname{\expandafter\noexpand\the\csname c@#1\endcsname} +% \tnba@key{pos}{\@namedef{fps@#1}{##1}} +% \@nameedef{ftype@#1}{\the\numexpr\tnba@lastplacenum+1} +% \@namedef{fnum@#1}{\csname #1name\endcsname ~\csname the#1\csname} +} + +\def\tnba@makelegend{\advancecount{\csname c@\tnba@savedplace\endcsname}% + \hfil \hbox{\vtop{\setbox0=\hbox{\legendlabel \tnba@savedlegend}% + \ifdim\wd0>\legendmaxwidth \hsize=\legendmaxwidth \else \hsize=\wd0 \fi + \setbox0=\hbox{\legendlabel}\legendlabel + \vtop{\advance\hsize-\wd0 \tnba@savedlegend}% + }}% + \addcontentsline{\csname ext@\tnba@savedplace\endcsname}% + {\tnba@savedplace}% + {\protect\extlabelbox\thelegend \tnba@savedlegend}% +} +\def\tnba@makesrc{\vskip8pt + \hfil \hbox{\vtop{\hsize=\tnba@placewidth + \setbox0=\hbox{\srclabel}\srclabel + \vtop{\advance\hsize-\wd0 \tnba@savedsrc\getprev}% + }}\useprev +} + +\def\legend#1#2{% + \ifdim\lastskip<0pt \else + \ifnum\lastpenalty=11333 \vskip-\placeabovespace \else + \removelastskip \fi\fi + \def\tnba@savedplace{#1}\def\tnba@savedlegend{#2}% + \def\@currentlabel{\csname p@#1\expandafter\endcsname + \the\expandafter\numexpr\csname c@#1\endcsname+1}% +} +\def\legendname{\csname \tnba@savedplace name\endcsname} +\def\thelegend{\the\csname c@\tnba@savedplace\endcsname} + +\def\src#1{% + \ifdim\lastskip<0pt \else + \ifnum\lastpenalty=11333 \vskip-\placeabovespace \else + \removelastskip \fi\fi + \def\tnba@savedsrc{#1}% +} +\def\srcname{Fonte} + +\def\placespaces#1#2{\def\placeabovespace{#1}\def\placebelowspace{#2}} + +\let\tnba@savedplace=\empty +\let\tnba@savedlegend=\empty +\let\tnba@savedsrc=\empty + +\long\def\place#1{% + \ifx\tnba@savedplace\empty \else \vskip\placeabovespace \fi + \begingroup \setbox0=\hbox{\ignorespaces#1}\edef\tnba@placewidth{\the\wd0}% + \parindent=0pt + \ifx\tnba@savedplace\empty\else\tnba@makelegend\fi + \nobreak\par\nointerlineskip + \hbox to\hsize{\hss\box0\hss}% + \nobreak\par\nointerlineskip + \ifx\tnba@savedsrc\empty \else \tnba@makesrc \vskip\placebelowspace \fi +\par + \endgroup + \let\tnba@savedplace=\empty + \let\tnba@savedlegend=\empty + \let\tnba@savedsrc=\empty + \let\@currentlabel=\relax +} + +% UTILIDADES +% ================================================ + +\def\getprev{\par\xdef\tnba@getprevA{\the\prevdepth}} +\def\useprev{\par\prevdepth=\tnba@getprevA} + +\long\def\sizedpar#1{\leavevmode\vtop{\ignorespaces#1\getprev}\useprev} + +\def\justifying{\let\\=\tnba@origcr + \leftskip=0pt \rightskip=0pt + \finalhyphendemerits=5000 + \parfillskip=0pt plus1fil +} +\let\tnba@origcr=\\ + +\def\Enter{\@ifnextchar[\tnba@EnterS{\tnba@EnterS[]}} +\def\tnba@EnterS[#1]{\vskip#1\baselineskip} + +\def\twonewpage{\newpage\leavevmode\newpage} + +% IDENTIFICAÇÃO DO TRABALHO +% ================================================ + +%\long\def\indexcarddebug#1{\hbox{\vrule\vbox to7.5cm{\hsize=\hsize %\advance\hsize-2cm \advance\hsize-0.8pt +% \hrule\indexcardA{#1}\vss\indexcardbar\hrule}\vrule}% +%} +%\long\def\indexcarddebugA#1{\hbox spread2cm{\hss\vrule +% \vbox spread2cm{\hrule\vss#1\vss\hrule}\vrule\hss}% +%} + +\long\def\indexcard#1{\hbox{\vrule\vbox to7.5cm{\hsize=12.5cm \advance\hsize by-2cm \advance\hsize by-0.8pt + \hrule\indexcardA{#1}\vss\indexcardbar\hrule}\vrule}% +} +\long\def\indexcardA#1{\hbox spread2cm{\hss\vbox spread2cm{\vss\ttfamily#1\vss}\hss}% +} +\def\indexcardbar{\hrule\kern1cm} + +\def\judgeline#1{\par{\centering \rule{.7\linewidth}{.6pt}\\ #1\Enter[1.5]}} + +% |sec ? +% ! ================================================ + +{\catcode`,=\active + \gdef,{\futurelet\next\tnba@smartcomma} +} + +\def\tnba@smartcomma{% + \ifx\next\@sptoken \else + \ifx\next\space \else \mathord \fi\fi + \tnba@mathcomma +} + +\mathchardef\tnba@mathcomma\mathcode`\, +\mathcode`\,="8000 + +\ifx\XeTeXversion\undefined +\AddToHook{begindocument/before}{ + \let\tnba@hyper@linkstart=\hyper@linkstart + \protected\def\hyper@linkstart#1#2{\lowercase{\tnba@hyper@linkstart{#1}{#2}}} +} +\fi + +% |sec INICIALIZAÇÃO +% ! ================================================ + +% |bcode !------------------------------------------------ +\fontsizedef{12pt}{ + \sizeselectordef\normalsize{12pt}{14.5pt} + \sizeselectordef\small{10pt}{12pt} +} +\setfontsize{12pt} +\spacing{1.5} + +\papersizedef{A4}(210mm,297mm) +\paper{ + A4, + left=3cm, + top=3cm, + right=2cm, + bottom=2cm +} + +\frenchspacing +\parindent=0pt +\parskip=0pt + +\tociuppercase +\sectionuppercase + +\tocifont {\bfseries} +\tociifont {\itshape} +\tociiifont {\scshape} +\tocivfont {} +\tocvfont {} + +\sectionfont {\bfseries} +\subsectionfont {\itshape} +\subsubsectionfont {\scshape} +\paragraphfont {} +\subparagraphfont {} + +\sectionspaces {\baselineskip}{\baselineskip} +\subsectionspaces {\baselineskip}{\baselineskip} +\subsubsectionspaces {\baselineskip}{\baselineskip} +\paragraphspaces {\baselineskip}{\baselineskip} +\subparagraphspaces {\baselineskip}{\baselineskip} + +\legendplacedef{figure}{Figura}{fig.\,#1}{lof} +\legendplacedef{table}{Tabela}{tab.\,#1}{lot} + +\def\legendlabel{\legendname ~\thelegend ~---~} +\def\srclabel{\raggedright\small Fonte:~} +\def\legendmaxwidth{0.7\linewidth} + +\placespaces{\baselineskip}{\baselineskip} + +\def\makelof{\heading{Lista de figuras} + \def\extlabelwidth{12.5ex}% + \def\extlabelbox##1{\hbox to\extlabelwidth{Figura ##1 ---\hfil}}% + \extfile{lof}\newpage +} +\def\makelot{\heading{Lista de tabelas} + \def\extlabelwidth{12.5ex} + \def\extlabelbox##1{\hbox to\extlabelwidth{Tabela ##1 ---\hfil}}% + \extfile{lot}\newpage +} +\def\maketoc{\heading{Sumário} + \def\extlabelwidth{4ex} + \def\extlabelbox##1{\hbox to\extlabelwidth{##1\hfil}}% + \extfile{toc}\newpage +} + +\arrayrulewidth=0.4pt + +\topskip=12pt + +\pretextual + +\endinput +% |ecode !------------------------------------------------ |