% !TeX TS-program = lualatex \documentclass{abntexto} \usepackage[cmyk]{xcolor} \usepackage[style=abnt]{biblatex} \addbibresource{abntexto.bib} \usepackage[brazil]{babel} \usepackage{fontspec} \usepackage{unicode-math} \usepackage[colorlinks,linktoc=page]{hyperref} \usepackage{listings} \usepackage{microtype} \makeatletter % VERBATIM % ================================================ \newcount\verbcount \newdimen\hh \hh=6pt \def\adef#1{\catcode`#1=13 \begingroup \lccode`\~=`#1\lowercase{\endgroup\def~}} \def\setverb{\def\do##1{\catcode`##1=12}\dospecials} {\catcode`\^^M=13 \gdef\verbpercent#1^^M{{\bfseries\color{comment}\%#1}^^M} } \def\makeverbcount{} \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 \catcode`\|=0 \catcode`\\=12 |long|gdef|startverb#1\endverb{|verbbox{#1|endgraf}|endgroup|resetplace} } \def\verbbox#1{\place{\verbframe{#1}}} \def\verbframe#1{% \hbox{{\color{leftbar}\vrule width3pt}\kern\hh\vbox{% \hbox{\vbox{\advance\hsize-3pt \advance\hsize-\hh \verbfont #1}}% }}% } \def\verbfont{\sloppy\ttfamily\small\singlesp} \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\color{blue!90!black}\setverb\adef{ }{\ }% \ttfamily\readverb}% \bgroup\lccode`\~=`#1\lowercase{\egroup\def\readverb ##1~}{##1\egroup}% \catcode`#1=13 } \verbchar{|} \AddToHook{begindocument}{\adef{<}{\begingroup \setverb\startmeta}} \def\startmeta#1>{\normalcolor\ttfamily$\langle${\rmfamily\itshape #1\/}$\rangle$\endgroup} % MISC % ================================================ \definecolor{leftbar}{gray}{.75} \definecolor{comment}{gray}{.2} \setmainfont{texgyretermes}[ UprightFont = *-regular, BoldFont = *-bold, ItalicFont = *-italic, BoldItalicFont = *-bolditalic, Extension = .otf ] \setmonofont{InconsolataN-Regular.otf} \setmathfont{texgyretermes-math.otf} \def\tocsectionfont#1{\bfseries#1\mdseries} \def\sectionfont{\bfseries} \def\appendixlabelwidth{6.7em} \def \l@section {\addpenalty{-300}\addvspace{.5em plus1pt} \extline{0pt}{\toclabelwidth}{\tocsectionfont}} \def \l@appendix {\addpenalty{-300}\addvspace{.5em plus1pt}% \extline{0pt}{\appendixlabelwidth}{\maintocfont}} \def \l@annex {\addpenalty{-300}\addvspace{.5em plus1pt}% \extline{0pt}{\annexlabelwidth}{\maintocfont}} \definelegendplace{code}{Código}{cód.\,}{loc} \def\me{o Autor.} \clubpenalty=10000 \widowpenalty=10000 \let\cite=\textcite \def\bibfont{\bibitemsep=\baselineskip \singlesp} \makeatother \begin{document} \leavevmode\vskip1.9in {\centering \LARGE\sffamily\bfseries abntexto\\[0.4em] \Large\itshape\mdseries Classe para {\upshape\LaTeX}\\[2em] \normalfont\large Elayson Abreu\\[1ex] \href{mailto:abntexto.classe@gmail.com}{abntexto.classe@gmail.com}\\[2.5ex] \today \par} \vskip3in {\centering\large\ttfamily 3.1.1-beta\par} \newpage \nonum\notoc\section{Sumário} \maketoc \newpage \section{Introdução} 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.}. 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 |abntexto| se propõe a seguir são aquelas em vigor até o momento da criação deste manual. São elas: \begin{topics} \item NBR 14724-2011 \item NBR 12225-2004 \item NBR 6028-2003 \item NBR 6027-2012 \item NBR 10520-2002 \item NBR 6023-2018 \item NBR 10522-1988 \item NBR 5892-2019 \item NBR 6024-2012 \end{topics} \section{Chamando a classe} Digite as linhas em \ref{cd:início} e use |abntexto|. \legend{code}{Início} \src\me \label{cd:início} \begverb % !TeX TS-program = lualatex \documentclass{abntexto} \usepackage[brazil]{babel} \usepackage{fontspec} \setmainfont{texgyretermes}[ UprightFont = *-regular, BoldFont = *-bold, ItalicFont = *-italic, BoldItalicFont = *-bolditalic, Extension = .otf ] \begin{document} Texto \end{document} \endverb O arquivo |exemplo.tex|, disponível no CTAN, mostra como elaborar os elementos pré-textuais. \section{Fonte tipográfica} O tamanho da fonte é 12\,pt de imediato e pode ser configurado redefinindo |\normalsize| por meio de |\sizedef|. 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. 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, porém |\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. As margens foram ajustadas com o pacote |geometry|. 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 na 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. \section{Sumário} Os comandos que configuram a fonte tipográfica 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} \begverb \documentclass{abntexto} \usepackage{xcolor} \def \tocsectionfont {\color{red}\itshape\MakeUppercase} \def \tocsubsectionfont {\color{blue}\bfseries} \begin{document} \nonum\notoc\section{Sumário} \maketoc \newpage \section{Título} \subsection{Título} \end{document} \endverb \section{Secionamento} 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 |\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} \begverb \documentclass{abntexto} \usepackage{xcolor} \def \sectionfont {\color{blue}\scshape} \def \subsectionfont {\color{red}\itshape} \def \subsubsectionfont {\color{yellow}\sffamily} \begin{document} \nonum\notoc\section{Sumário} \maketoc \section{Texto} \subsection{Texto} \subsubsection{Texto} \end{document} \endverb O usuário pode querer utilizar capítulos no trabalho. O |abntexto| disponibiliza a instrução |\chapter| para capítulos, porém não em conformidade com a Norma, mas no estilo da classe |book|. Para ativá-los é preciso chamar a instrução |\usechapters| no preâmbulo do documento. Também é possível usar |\part| em conjunto com o comando |\useparts|. Este útlimo contém |\usechapters| em sua definição, portanto, ao chamar |\useparts|, você também estará chamando |\usechapters|. Os níveis secionais |\section|, |\chapter| e |\part| estão sujeitos a |\nonum| que remove a numeração do título e |\notoc| que instrui o título a não ingressar no sumário. \section{Alíneas} 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} \begverb \begin{topics} \item \label{al:x} 1 \begin{topics} \item \label{subal:x} x \item y \item z \end{topics} \item \label{al:y} 2 \item 3 \end{topics} \endverb \section{Áreas de legenda} Use |\place{}| para inserir áreas de legenda como mostrado em \ref{cd:place}. Mas existem condições: |\place| deve constar em último lugar e |\legend{}{}| deve preceder |\label|. Além disso, existe a possibilidade de alterar o espaço vertical acima e abaixo de uma área de legenda com |\def\aboveplace{}| e |\def\belowplace{}|. \legend{code}{Áreas de legenda} \src\me \label{cd:place} \begverb \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} \endverb O leitor pode querer definir uma nova área de legenda usando, por exemplo, a instrução |\definelegendplace{diagram}{Diagrama}{diag.\,#1}{lod}| que criará o comando |\makelod| para escrever no documento as entradas do arquivo auxiliar .lod. Por exemplo, |\definelegendplace| foi usado para criar as áreas de legenda para tabelas e figuras nesta classe. O |abntexto| também tem suporte nativo para inserção de figuras lado a lado. Elas se comportam como caracteres então podemos usar |\hfil| para centralizá-las. Veja o exemplo no \ref{cd:multiple} e o resultado logo em seguida. Até o momento, a classe não tem suporte para objetos flutuantes. \legend{code}{Figuras lado a lado} \src\me \label{cd:multiple} \begverb \legend{figure}{Duas figuras} \begin{multiplace} \sublegend{figure}{Um título} \src{\texttt{www.site.com.br}. Acesso em 01 jan. 2020.} \label{fig:teste1} \hfil \subplace{\includegraphics[width=\linewidth]{example-image-a}} \sublegend{figure}{Outro título} \src{\texttt{www.site.com.br}. Acesso em 01 jan. 2020.} \label{fig:teste2} \hfil \subplace{\includegraphics[width=\linewidth]{example-image-b}} \end{multiplace} Ver \ref{fig:teste1} e \ref{fig:teste2}. \endverb \legend{figure}{Duas figuras} \begin{multiplace} \sublegend{figure}{Um título} \src{\texttt{www.site.com.br}. Acesso em 01 jan. 2020.} \label{fig:teste1} \hfil \subplace{\includegraphics[width=\linewidth]{example-image-a}} \sublegend{figure}{Outro título} \src{\texttt{www.site.com.br}. Acesso em 01 jan. 2020.} \label{fig:teste2} \hfil \subplace{\includegraphics[width=\linewidth]{example-image-b}} \end{multiplace} Ver \ref{fig:teste1} e \ref{fig:teste2}. \section{Formatação de {\mdseries\ttfamily\textbackslash\lowercase{cite}} e referências} \label{section} 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 |\enquote{texto}\cite{}|. Mas, se tratando de citações diretas com mais de três linhas, alterne para |\Enquote{texto \cite{}}|. \section{Apêndice e anexo} 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} \begverb \begin{document} \appendix{Lorem} \appendix{Lipsum} \annex{Lorem} \annex{Lipsum} \end{document} \endverb Pode-se alterar a largura dos rótulos das entradas de apêndice/anexo no sumário redefinindo |\appendixlabelwidth|\,/\,|\annexlabelwidth|. \newpage \begin{corrprint}{Referências} \printbibliography \end{corrprint} \appendix{Glossário} Você pode criar glossários com o pacote |glossaries|, como em \ref{cd:gloss}. \legend{code}{Glossário} \src\me \label{cd:gloss} \begverb \documentclass{abntexto} \usepackage{lipsum} \usepackage{glossaries} \makenoidxglossaries \newglossaryentry{metalism}{name=metalismo,description={Tipo de sistema monetário cujo valor da moeda, geralmente de uma nação ou de um país, é determinado pela quantidade constante de certo metal (ouro ou prata), desta forma se estabelece um valor fixo de troca entre esses metais e o próprio dinheiro}} \newglossaryentry{lip}{name=lipsum,description={\lipsum[1]}} \begin{document} O \gls{metalism} e o \gls{lip}. \begin{corrprint}{Glossário} \printnoidxglossary \end{corrprint} \end{document} \endverb \appendix{Lista de siglas} O |glossaries.sty| também serve para criar uma lista de siglas, conforme \ref{cd:acro}. \legend{code}{Siglas} \src\me \label{cd:acro} \begverb \documentclass{abntexto} \usepackage[acronym]{glossaries} \makenoidxglossaries \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: \acr{ibge}, \acr{html}. 2ª chamada: \acr{ibge}, \acr{html}. \begin{corrprint}{Lista de siglas} \def\acronymname{Lista de siglas} \printnoidxglossary[type=acronym] \end{corrprint} \end{document} \endverb \appendix{\emph{Feedback}} Sugestões, relatos de \emph{bugs} e doações são bem-vindas. Chave PIX: {\ttfamily abntexto.classe@gmail.com} % MACROS PARA O CÓDIGO-FONTE % ================================================ \appendix{Código-fonte} \definecolor{background}{cmyk}{0,0.08,0,0} \definecolor{comment}{cmyk}{0.9,0,0,0.1} \definecolor{letter}{cmyk}{0,0,0,.8} \parskip=0pt plus.2ex minus.1ex \countsection=0 \def\addtoext#1#2#3{} \def\sectionfont{\itshape} \def\sec#1\par{\section{#1}} \def\verbfont{\raggedright\ttfamily\small\sloppy} \def\codesep{2mm} \def\leftsep{5mm} \lstnewenvironment{code}{\lstset{ % language=TeX, Definir uma linguagem não está funcionando aqui. basicstyle=\verbfont, 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, commentstyle=\color{blue}\bfseries, comment=[l]{\%}, columns=fullflexible, tabsize=3, backgroundcolor=\color{background}, literate= {\ }{ }1 {\^^M\%}{}2 }}{} {\catcode`\!=14 \catcode`\%=9 \input abntexto.cls } \end{document}