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