diff options
author | Karl Berry <karl@freefriends.org> | 2023-02-01 21:04:40 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-02-01 21:04:40 +0000 |
commit | 165f553315d9f59ef87cf00148148f9e15539f84 (patch) | |
tree | 54377cb7c31f0092ffeea81387644392ca00dd08 /Master/texmf-dist/doc/latex/abntexto/abntexto.tex | |
parent | 19544b227d42aa5d47703377e243aadbdae5a0ff (diff) |
abntexto (1feb23)
git-svn-id: svn://tug.org/texlive/trunk@65705 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/abntexto/abntexto.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/abntexto/abntexto.tex | 449 |
1 files changed, 449 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/abntexto/abntexto.tex b/Master/texmf-dist/doc/latex/abntexto/abntexto.tex new file mode 100644 index 00000000000..2183e6ebf7a --- /dev/null +++ b/Master/texmf-dist/doc/latex/abntexto/abntexto.tex @@ -0,0 +1,449 @@ +% !TeX TS-program = lualatex + +\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[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 + +\rewrite +\let\href=\relax \def\textcite#1{{\bfseries#1}} \def\today{} +\endrewrite + +% MARKUP +% ================================================ + +\def\ttnoligs{\ttfamily\@noligs} + +\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\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\codecatcodes{\let\do=\dodef \dospecials \catcode`\|=0 } + +{\catcode`\^^M=13 + \gdef\codepercent#1^^M{{\color{graycomment}\itshape\@percentchar#1^^M}} +} + +\long\def\codeon{\begingroup \codecatcodes + \adef{\^^I}{\space\space\space}% + \adef{\^^M}{\par\leavevmode}% + \adef{\ }{\space}% + \adef{\%}{\codepercent}% + \startcode +} + +{\catcode`\ =13 \catcode`\^^M=13 \catcode`\|=0 \catcode`\\=12 + |gdef|startcode^^M#1^^M\codeoff{|codebox{#1}|par|endgroup |codereset} +} +\def\codebox#1{\def\tnba@placewidth{\hsize \advance\hsize-3cm}% + \vskip\aboveplace + \parindent=0pt + \ifx\tnba@savedplace\empty\else\tnba@makelegend\fi + \nobreak\nointerlineskip\vskip10pt + {\codefont{#1}}% + \nobreak\nointerlineskip\vskip8pt + \ifx\tnba@savedsrc\empty\else\tnba@makesrc\fi + \vskip\belowplace +} +\def\codereset{% + \let\tnba@savedplace=\empty + \let\tnba@savedlegend=\empty + \let\tnba@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}}} + +% MISC +% ================================================ + +\definecolor{mono}{cmyk}{0,0,0,.73} +\definecolor{graybar}{gray}{.75} +\definecolor{graycomment}{gray}{.2} + +\erase +\setmainfont{TeX Gyre Termes} +\setmonofont{Inconsolatazi4-Regular}[Color=mono] +%\newfontfamily\bgfont{Inconsolatazi4-Regular}[Color=bgfontcolor] +\enderase + +\def\tocifont{\bfseries} +\def\sectionfont{\bfseries} + +\sizedef \large {14.4pt}{17pt}{} +\sizedef \Large {20.74pt}{25pt}{} +\sizedef \LARGE {25pt}{30pt}{} + +\definelegendplace{code}{Código}{Lista de códigos}{cód.\,#1}{loc} +\def\me{o autor.} + +\clubpenalty=10000 +\widowpenalty=10000 + +\let\cite=\textcite +\def\bibfont{\singlesp} +\erase +\bibitemsep=18pt +\enderase + +\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] + 2023-01-31\par} + +\vskip3in + +{\centering\large\ttfamily 2.0.0-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. + +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. + +\section{Chamando a classe} + +Digite as linhas em \ref{cd:início} e use \pkg{abntexto}. + +\legend{code}{Início} \src\me +\label{cd:início} +\codeon +% !TeX TS-program = lualatex +\documentclass{abntexto} + +\usepackage[brazil]{babel} +\usepackage{fontspec} + +\setmainfont{TeX Gyre Termes} + +\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{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. + +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. + +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\setlayout\ que deve ser usada assim: \cs\setlayout\ccval{left=\meta{medida}, right=\meta{medida}, top=\meta{medida}, botttom=\meta{medida}}. + +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: \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}). + +\legend{code}{Aparência do sumário} \src\me +\label{cd:contents} +\codeon +\documentclass{abntexto} + +\usepackage{color} + +\def \tocifont {\color{red}\itshape\MakeUppercase} +\def \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{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. + +\legend{code}{Aparência das seções} \src\me +\label{cd:sec} +\codeon +\documentclass{abntexto} + +\usepackage{color} + +\def \sectionfont {\color{blue}\scshape} +\def \subsectionfont {\color{red}\itshape} +\def \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{cd:topics}. Naturalmente, é permitido usar \cs\label\ após um item. + +\legend{code}{Alíneas} \src\me +\label{cd: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{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}. + +\legend{code}{Áreas de legenda} \src\me +\label{cd: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\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. + +\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\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}}. + +\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}). + +\legend{code}{Anexos e apêndices} \src\me +\label{cd:appendix} +\codeon +\begin{document} + \appendix + \section{Lorem} + \section{Lipsum} + + \annex + \section{Lorem} + \section{Lipsum} +\end{document} +\codeoff + +Pode-se alterar a largura dos rótulos das entradas de apêndice/anexo no sumário redefinindo \cs\appendixlabelwidth \,/\,\cs\annexlabelwidth. + +%\end{document} + +\newpage + +\erase +\corrprinton +\printbibliography +\corrprintoff +\enderase + +\newpage + +\let\origsection=\section +\appendix + +\section{Glossário} + +%\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 +\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}. + + \corrprinton + \printnoidxglossary + \corrprintoff +\end{document} +\codeoff + +\section{Lista de siglas} + +O pacote \pkg{glossaries} também serve para criar uma lista de siglas. + +\codeon +\usepackage{lipsum} +\usepackage[acronym]{glossaries} + +\makenoidxglossaries + +\newacronym{ibge}{IBGE}{Instituto Brasileiro de Geografia e Estatística} +\newacronym{html}{HTML}{Hypertext Markup Language} + +\begin{document} + 1ª chamada: \gls{ibge}, \gls{html}. + + 2ª chamada: \gls{ibge}, \gls{html}. + + \corrprinton + \def\acronymname{Lista de siglas} + \printnoidxglossary[type=acronym] + \corrprintoff +\end{document} +\codeoff + +\section{\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 + +\definecolor{bg}{cmyk}{0,0.06,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\addcontentsline#1#2#3{} +\def\sectionfont{\itshape} +\def\sec#1\par{\origsection{#1}} + +{\catcode`\^^M=13 + \gdef\codepercent#1^^M{{\bfseries\color{comment}\@percentchar#1^^M}} +} + +\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`\%=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} |