% Para este documento, usar XeLaTeX ou LuaLaTeX
%
\makeatletter
\@ifclassloaded{book}{}{
 %\documentclass[12pt,a4paper,twoside,openright]{book}
 \documentclass[12pt,a4paper,oneside]{book}
 %  \newif\iftwosidedocument
 %  \twosidedocumenttrue
}
\makeatother

\sloppy % prefer underfull than overfull

\usepackage{iftex} % detectar motor TeX usado

% testing TeX engine
%\ifPDFTeX
%  \PackageError{\jobname}{Precisa de XeLaTeX ou LuaLaTeX}{Use XeLaTeX ou LuaLaTeX}
%\fi

\ifXeTeX
\else\ifLuaTeX
\else
 \PackageError{\jobname}{Precisa de XeLaTeX ou LuaLaTeX}{Use XeLaTeX ou LuaLaTeX}
\fi\fi

\usepackage[english,brazil]{babel} % brazil como padrão

%% Font selection
\usepackage{fontspec} % iffont carrega ele
%\defaultfontfeatures{Ligatures=TeX}

\usepackage{fontsetup} % New Computer Modern Book weight

%\usepackage[olddefault]{fontsetup} % New Computer Modern regular weight

% iffont not works on LuaLaTeX. Need patch it.
% On XeLaTeX need patch too for external font
\usepackage{iffont} % On new xelatex/lualatex, it works (no patch needed)

%\makeatletter
%  \renewcommand{\@iffont@firstfont}{MS Mincho}
%\makeatother

%\ifXeTeX
%  \ifx \IfFontExistsTF\undefined
%    \let\IfFontExistsTF\iffontexists
%  \fi
%\else\ifLuaTeX
%  \ifx \IfFontExistsTF\undefined
%    \PackageError{\jobname}{fontspec is old}{Install updated fontspec package}
%  \fi
%\fi\fi

%\ifLuaTeX

%%% patch on iffont
%%  \ifx \IfFontExistsTF\undefined
%%    %\PackageError{\jobname}{fontspec antigo}{Atualize para versão mais nova ou use XeLaTeX}
%%    \PackageError{\jobname}{'fontspec' antigo}{Atualize para versão mais nova}
%%  \fi
%%  % \usepackage{etoolbox} % iffont ja carregou
%%  \let\iffontexists\IfFontExistsTF
%%  \makeatletter
%%    \renewcommand{\@iffont@checkfont}[1]{
%%      \IfFontExistsTF{#1}{
%%        \nottoggle{@iffont@fontfound}{%
%%          \renewcommand{\@iffont@firstfont}{#1}
%%          \toggletrue{@iffont@fontfound}
%%        }{}
%%      }{\stepcounter{@iffont@fontsnotfound} }
%%    }
%%  \makeatother
%\fi

%\ifXeTeX % need file name for font outside tex tree
%  \settofirstfound{\jafont}{NotoSerifCJK-Regular.ttc, msmincho.ttf, takaomincho.ttf, ipaexm.ttf, ipam.ttf}
%  \settofirstfound{\jagothic}{NotoSansCJK-Bold.ttc, msgothic.ttf, takaogothic.ttf, ipaexg.ttf, ipag.ttf}
%\else % LuaLa\teX (will use font name for all)

%  \settofirstfound{\jafont}{Noto Serif CJK JP, MS Mincho, TakaoMincho, IPAexMincho, IPAMincho, Hiragino Mincho Pro}
%  \settofirstfound{\jagothic}{Noto Sans CJK JP, MS Gothic, TakaoGothic, IPAexGothic, IPAGothic, Hiragino Maru Gothic Pro}
%\fi

% DEBUG XeLaTeX
%\renewcommand\jafont{NotoSerifCJK-Regular.ttc}
%\renewcommand\jagothic{NotoSansCJK-Bold.ttc}

%  % versao 2016 nao tem \IfFontExistsTF no fontspec
%  \ifx \IfFontExistsTF\undefined
%    \PackageError{\jobname}{fontspec antigo}{Atualize para versão mais nova}
%  \fi
%
%  \IfFontExistsTF{Noto Serif CJK JP}{\newcommand{\jafont}{Noto Serif CJK JP}}%
%  {\IfFontExistsTF{MS Mincho}{\newcommand{\jafont}{MS Mincho}}%
%  {\IfFontExistsTF{TakaoMincho}{\newcommand{\jafont}{TakaoMincho}}%
%  {\IfFontExistsTF{IPAexMincho}{\newcommand{\jafont}{IPAexMincho}}%
%  {\IfFontExistsTF{IPAMincho}{\newcommand{\jafont}{IPAMincho}}%
%  {\IfFontExistsTF{Hiragino Mincho Pro}{\newcommand{\jafont}{Hiragino Mincho Pro}}%
%  {\newcommand{\jafont}{MS Mincho}}}}}}}
%
%  \IfFontExistsTF{Noto Sans CJK JP}{\newcommand{\jafont}{Noto Sans CJK JP}}%
%  {\IfFontExistsTF{MS Gothic}{\newcommand{\jafont}{MS Gothic}}%
%  {\IfFontExistsTF{TakaoGothic}{\newcommand{\jafont}{TakaoGothic}}%
%  {\IfFontExistsTF{IPAexGothic}{\newcommand{\jafont}{IPAexGothic}}%
%  {\IfFontExistsTF{IPAGothic}{\newcommand{\jafont}{IPAGothic}}%
%  {\IfFontExistsTF{Hiragino Maru Gothic Pro}{\newcommand{\jafont}{Hiragino Maru Gothic Pro}}%
%  {\newcommand{\jafont}{MS Gothic}}}}}}}

% versao antiga (2016) do fontspec ainda nao tem \IfFontExistsTF
% precisa atualizar o fontspec

%\IfFontExistsTF{\jafont}{}{\PackageError{\jobname}{Fonte japonês Mincho (\jafont) não encontrada.}{Instale um dos seguintes: Noto Serif CJK JP, MS Mincho, TakaoMincho, IPAexMincho, IPAMincho, Hiragino Mincho Pro}}
%\IfFontExistsTF{\jagothic}{}{\PackageError{\jobname}{Fonte japonês Gothic não encontrada.}{Instale um dos seguintes: Noto Sans CJK JP, MS Gothic, TakaoGothic, IPAexGothic, IPAGothic, Hiragino Maru Gothic Pro}}

\def\jafontlist{Noto Serif CJK JP, MS Mincho, TakaoMincho, IPAexMincho, IPAMincho, Hiragino Mincho Pro,[lmroman12-regular]} % último da list anão é japonês
\def\jagothicfontlist{Noto Sans CJK JP, MS Gothic, TakaoGothic, IPAexGothic, IPAGothic, Hiragino Maru Gothic Pro}

\settofirstfound{\jafont}{\jafontlist}
\settofirstfound{\jagothic}{\jagothicfontlist}

%\IfFontExistsTF{\jafont}{}{\PackageError{\jobname}{Fonte japonês Mincho (\jafont) não encontrada.}{Instale um dos seguintes: \jafontlist}}
%\IfFontExistsTF{\jagothic}{}{\PackageError{\jobname}{Fonte japonês Gothic (\jagothic) não encontrada.}{Instale um dos seguintes: \jagothicfontlist}}

% usando comando \ifdefstring e % \ifdefstrequal do etoolbox que iffont já carregou
% \ifdefstring compara expansão de comando com o string
\ifdefstring\jafont{[lmroman12-regular]}{\PackageError{\jobname}{Fonte japonês Mincho não encontrada.}{Instale um dos seguintes: \jafontlist}}{}
% \ifdefstrequal compara expansão de dois comandos como string
\ifdefstrequal\jagothic\jafont{\PackageWarning{\jobname}{Fonte japonês Gothic não encontrada.}{Instale um dos seguintes: \jagothicfontlist}}{}

\newfontfamily{\jafamily}[BoldFont=\jagothic]{\jafont}
\newcommand{\textja}[1]{{\jafamily #1}}

% amsmath deve ser carregado antes do unicode-math,
% se precisar de alguns comandos de amsmath que nao esta
% em unicode-math como o \DeclareMathOperator

% \usepackage{amssymb} % para \circlearrowleft que nao tem no unicode-math
\usepackage{amsmath}
% \usepackage{amsbsy} % bold symbol: amsmath carrega

% \boldsymbol e ambiente boldmath não funciona no unicode-math
% Mapeando o symbf como \boldsymbol
\makeatletter
\AtBeginDocument{%
 \@ifpackageloaded{unicode-math}{%
     \let\boldsymbol\symbf
 }{\let\symbf\boldsymbol}%
}{}
\makeatother
% \usepackage{xunicode} % textcomp equiv. Old and not works on lualatex (March, 2018). Now, fontspec features are sufficient for this
\usepackage{unicode-math} % amssymb,amsmath equiv.
\ifLuaTeX
 \usepackage{lualatex-math}
\fi

% Other packages
\usepackage[table]{xcolor} % colors, with table support
\usepackage{tikz} % graphics

% margins
\usepackage[margin=2cm]{geometry}

\usepackage[hyphens]{url} % will break url across line on hyphens
%\makeatletter
%  \g@addto@macro{\UrlBreaks}{\UrlOrds}
%\makeatother
% \usepackage{xurl}

\usepackage{hyperref} % link
\hypersetup{
 unicode=true,
 breaklinks=true,
 bookmarks=true
}
\usepackage{bookmark} % to add bookmark manually

% \providecommand{\url}[1]{\texttt{#1}}

\usepackage{lipsum}

\usepackage[stretch=10]{microtype} % microtipografia: funciona no PDFLaTeX e LuaLaTeX (parcialmente em XeLaTeX)
% atrapalha a copiar texto do PDF

\usepackage{setspace}

\onehalfspacing

% \usepackage{fancyhdr}

%\usepackage{bm} % fórmula matematica em negrito.

\usepackage{enumerate} % controle de enumeração
% \usepackage{hhline} % linhas duplas na tabela
\usepackage{dcolumn} % alinhar decimais
\usepackage{tabularx} % igualar colunas
\usepackage{longtable}
% \toprule, midrule, cmidrule{}, bottomrule
\usepackage{booktabs}
% xtabular (tabela longa cnfigurável)
\usepackage{xtab}
% implementação moderna de tabela (tblr que funciona tanto no modo texto como no modo matemático)
\usepackage{tabularray}
\UseTblrLibrary{booktabs,siunitx,caption}

\usepackage{makeidx}
\makeindex

\usepackage[nottoc]{tocbibind} % bibliogrphy and index on tableofcontents


\usepackage{amsthm}

\usepackage{multicol} % multiple column on document

\usepackage{makeidx} % pacote para produzir
% indice remissvo (glossário)
\makeindex % ativando o indice remissivo (glossário)

% To solve probblem of \MakeUppercase that not works for accent char
% and change to uppercase, the formula, ref, cite, etc too.
\usepackage[overload]{textcase}
\usepackage{listings} % format source code
\usepackage{showexpl} % ele carrega listings
% acento nao sobrevive no arquivo temporario de showexpl
% Use diretamente do arquivo externo, ou use XeLaTeX/LuaLaTeX

\usepackage{verbatim} % For verbatim
\usepackage{fancyvrb} % for VerbatimOut

\usepackage{keyval} % key=value in command parameter
%
% \usepackage{algorithmicx}
\usepackage{algpseudocode} %  arquivo de estilo de algorithmicx

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% pacotes usados nos exemplos correspondentes
%----------------------------------------------
%\usepackage{tikz} % pacote gráfico
\usetikzlibrary{babel} % para compatiblidade com o pacote babel, requerido por agumas bibliotecas como o cd.
\usetikzlibrary{calc} % calc eh para efetuar calculos matematicos ou expressoes em coordenadas
\usetikzlibrary{through} % circulo passando por ponto, por exemplo.
\usetikzlibrary{patterns} % preenchimentos
\usetikzlibrary{intersections} % interseccao entre caminhos
\usetikzlibrary{matrix} % matriz no tikz
\usetikzlibrary{cd} % diagrama comutativa
%
\usepackage{lettrine} % Para paragrafo no estilo biblia
\usepackage{caption} % configurar o titulo da figura e tabela
\usepackage{subcaption} % subfigura ou subtabela
\usepackage{wrapfig} % texto contornando a figura ou tabela
\usepackage{pdflscape} % rotaciona uma página
\usepackage{pict2e} % para incrementar ambiente picture
\usepackage[mathlines]{lineno} % enumerar linhas de documento
\usepackage{blindtext} % gera parágrafos de textos sem sentido, para testes
\usepackage{fancybox} % caixas enfeitadas
\usepackage{framed} % moldura no texto
%\usepackage{exsheets} % para lista de exercicios e provas
% saida do xsim é formatado manualmente sem usar este pacote
%\usepackage{xsim} % sucessor de exsheets (gera exercicios e respostas)
\usepackage{tasks} % para lista de exercicios e provas
\usepackage{answers} % respostas
\usepackage{siunitx} % para unidade internacional.
\usepackage[shortlabels,inline]{enumitem} % para controle de listas e listas compactas
\usepackage{tabto} % para tabular itens da lista compacta.
% o pacote tasks ja carregou o ulem. Carregar de novo causa erro
% Agora tasks não carrega mais (carregar explicitamente)
\usepackage[normalem]{ulem} % sublinhar,tachar, etc no texto

\usepackage{soul} % para destacar
\setulcolor{green} % cor para sublinhar
\setstcolor{red} % cor para cancelar
\sethlcolor{yellow} % cor para destaque

\usepackage{cancel} % cancelar elemento
% para cortar seta longa (negação da seta longa)
\usepackage{centernot} % cortar símbolo no centro
% fancyhdr and titlesec defines headrule and footrule,
% Use option pagestyles on titlesec package and
% load fancyhdr after titlesec
\usepackage[pagestyles]{titlesec} % para exemplo de titlesec
%\let\headrule\undefined
%\let\footrule\undefined
\usepackage{fancyhdr}
% para criar contorno
\usepackage{contour}
% texto sombreado
\usepackage{shadowtext}
% texto em degrade (gradiente linear)
\usepackage{gradient-text}
%
% texto circulado: de 2022
\usepackage{circledtext}
%
% Para evaluar expressões matemáticas
\usepackage{xfp} % estilo sin(pi)
\usepackage{numerica} % estilo \sin(\pi)
\usepackage{numerica-tables} % para tabelar

\usepackage{yfonts} % fonte Baroque para iniciais

%\usepackage{array} % precisa para acro usar longtable
%\usepackage{acro} % cria lista de siglas, e similares


% TODO's
%\usepackage{todonotes} % carega xkeyval, tikz, etc

%% caixa colorida usada para exemplo de certificado.
% \usepacakge{tcolorbox}

%  Adiciona a opção 'H' e também permite criar float personalizado.
%\usepackage{float}
%\newfloat{algorithm}{tbp}{loa}[chapter]
% \floatname{algorithm}{Algorítimo}

% bug no titlesec 2.10.1 remove enumeracao da secao (corrigido em 2.10.2 de 21/03/2016).
% O Usuario de ubuntu 16.04 devem atualizar o titlesec
% https://tex.stackexchange.com/questions/299969/titlesec-loss-of-section-numbering-with-the-new-update-2016-03-15/300259
%
% Atualize o titlesec no ubuntu 16.04
% sudo wget http://mirrors.ctan.org/macros/latex/contrib/titlesec/titlesec.sty -O /usr/share/texlive/texmf-dist/tex/latex/titlesec/titlesec.sty

%========================================================
% rodap\'e deve estar em espa\c{c}amento simples,
% independente do espa\c{c}amento no corpo de documento
% Devera ser feito com linespread{} \@currsize
% pois comandos do setspace nao funciona como desejado
%========================================================
% foi copiado do book e alterado
\makeatletter % ativa uso de ``@'' no nome
\renewcommand\@makefntext[1]{%
   \parindent 1em%
   % inicio da altera\c{c}\~ao
   \linespread{1} \@currsize \noindent
   % \hb@[email protected]{\hss\@makefnmark}#1}
   \hb@[email protected]{\hss\@makefnmark}#1}
% fim da altera\c{c}\~ao
\makeatother % desativa o uso de ``@'' no nome

\let\orilstlistingname\lstlistingname
\renewcommand{\lstlistingname}{Exemplo}
\renewcommand{\lstlistlistingname}{Lista de \lstlistingname s}
% setup  listings
\lstset{
%  language=[LaTeX]TeX,
 numbers=none,
 backgroundcolor=\color{yellow!30},
 breaklines=true,
 breakautoindent=true,
 % breakatwhitespace=true,    % quebra linha somente no espaço
 belowcaptionskip=1\baselineskip, % espaço após o título
 % aboveskip=2ex,
 %keepspaces=true, % to keep indentation
 columns=fullflexible, % para poder copiar codigo do PDF (fixed, flexible, fullflexible)
 frame=lines, %none, single, line % do codigo
}

% aplicando patch no codigo de showexpl para que o parametro abovecaptionskip funcione tambem no LTXexample

\makeatletter
\renewcommand\SX@KillAboveCaptionskip{%
 \ifx\lst@caption\@empty\else
   \lst@IfSubstring t\lst@captionpos
     {\vskip-\abovecaptionskip}{}%
 \fi
 \ifx\lst@belowcaption\undefined \else %adicionado
   \belowcaptionskip=\lst@belowcaption\relax % adicionado
 \fi %adicionado
}
\makeatother

% setup showexpl
\lstset{explpreset={
 pos=b,
 belowcaptionskip=0.5\baselineskip, % espaço após o título
%  language=[LaTeX]TeX,
 %basicstyle=\ttfamily\small,
 %identifierstyle=\color{black},
 %keywordstyle=\color{blue},
 %commentstyle=\color{red},
 %extendedchars=true,
 % extendedchars=false
 %showspaces=false,
 %showstringspaces=false,
%  numbers=none,
 %numberstyle=\tiny,
%  breaklines=true,
 %backgroundcolor=\color{lightgray},
%  breakautoindent=true,
 %captionpos=b,
 %xleftmargin=0pt,
 % captionpos=t.
 % aboveskip=2ex,
 % columns=fullflexible,
%  columns=flexible, % para poder copiar codigo do PDF
 % para editor (sem ele, terq espaço indesejado)
 % from http://latex.org/forum/viewtopic.php?t=5636
 % hsep=2ex,
%  frame=lines, %none, single, line % do codigo
 %rframe={single} % do resultado
 }
}

% para arquivo de BibTeX no listings
% https://tex.stackexchange.com/questions/85998/include-bibtex-contents-in-a-listings-block
\lstdefinelanguage{BibTeX}
 {keywords={%
     @article,@book,@collectedbook,@conference,@electronic,@ieeetranbstctl,%
     @inbook,@incollectedbook,@incollection,@injournal,@inproceedings,%
     @manual,@mastersthesis,@misc,@patent,@periodical,@phdthesis,@preamble,%
     @proceedings,@standard,@string,@techreport,@unpublished%
     % author, editor, publisher, year, url, urldate
     },
  comment=[l][\itshape]{@comment},
  sensitive=false,
 }

\lstdefinestyle{lstexample}
{
%  language=[LaTeX]TeX,
%  keywordstyle=\bfseries,
%  identifierstyle=\itshape,
 backgroundcolor=\color{white},
 numbers=none,
 breaklines=true,
 breakautoindent=true,
%  belowcaptionskip=1\baselineskip, % espaço após o título
%  aboveskip=2ex,
 %keepspaces=true, % to keep indentation
 columns=fullflexible, % para poder copiar codigo do PDF
 frame=lines, %none, single, line % do codigo
%  explpreset={
%    attachfile=false,true
%    codefile=temporaryfilename,
%    explpreset=? defualti values is?
%    graphic=alternativegraphicsfileforoutput,
%    hsep=,
%    justification=\raggedright,% \raggedleft, \raggedright, \centering
%    overhang=,
%    pos=, % e t, b, l, r, and i
%    preset={},
%    rangeaccept=false, % true/false
%    rframe=,
%    varwidth=,
%    hsep,
%    wide,
%    width=
%  }
}

% LTXexample's parameter
%    attachfile=false,trure
%    codefile=temporaryfilename,
%    explpreset=? defualti values is?
%    graphic=alternativegraphicsfileforoutput,
%    hsep=,
%    justification=\raggedright,% \raggedleft, \raggedright, \centering
%    overhang=,
%    pos=, % e t, b, l, r, and i
%    preset={},
%    rangeaccept=false, % true/false
%    rframe=,
%    varwidth=,
%    hsep,
%    wide,
%    width=
%  }

% showexpl's LTXexample environment like ltxlisting
% is implemented (it use showexpl's preset (thus, need showexpl package}

\makeatletter

% Para usar no exemplo de babel
\newenvironment{abstract}%
{\par\begin{center}\textbf{\small\abstractname}\vspace{-0.5em}\end{center}%
\begin{quotation}}%
{\end{quotation}}

%\newenvironment{abstract}{%
%  \if@twocolumn
%    \section*{\abstractname}%
%  \else
%    \small
%    \begin{center}%
%      {\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}%
%    \end{center}%
%    \quotation
%  \fi}
%{\if@twocolumn\else\endquotation\fi}

\let\orititle\title
\let\oriauthor\author
\let\oridate\date
\newcommand{\makearticletitle}{%
 \begin{center}%
%    T\'{\i}tulo:
   {\LARGE \@title \par}%
   \vspace*{1.5em}%
   {\large\center \@author }%
   \ifx\@date\@empty%
   \else%
     \par%
     \vspace*{1em}%
     {\large \@date}%
   \fi%
 \end{center}%
 \vspace*{1.5em}%
 \global\let\@author\@empty
 \global\let\@date\@empty
 \global\let\@title\@empty
 \global\let\title\relax
 \global\let\author\relax
 \global\let\date\relax
}

%\def\@maketitle{%
%  \newpage
%  \null
%  \vskip 2em%
%  \begin{center}%
%  \let \footnote \thanks
%    {\LARGE \@title \par}%
%    \vskip 1.5em%
%    {\large
%      \lineskip .5em%
%      \begin{tabular}[t]{c}%
%        \@author
%      \end{tabular}\par}%
%    \vskip 1em%
%    {\large \@date}%
%  \end{center}%
%  \par
%  \vskip 1.5em}
%\fi

\makeatother

%% ambientes de teoremas usado no exemplo
%% Definindo teormas e similares. Contador unico, vinculado a capítulos.
%\newtheorem{theorem}{Teorema}[chapter] % contador vinculado a capitulos
%\newtheorem{corollary}[theorem]{Corolário}
%\newtheorem{lemma}[theorem]{Lema}
%\newtheorem{proposition}[theorem]{Proposição}
%\newtheorem{axiom}[theorem]{Axioma}
%\theoremstyle{definition}
%\newtheorem{definition}[theorem]{Definição}
%\newtheorem{example}[theorem]{Exemplo}
%\newtheorem{exercise}{Exercício}[chapter] % contador próprio, vinculado a capitulo
%\theoremstyle{remark}
%\newtheorem{remark}[theorem]{Observação}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% return to ams like mathcal instead of unicode-math ones
%\let\mathcal\relax % remove the definition by unicode-math
%\DeclareMathAlphabet{\mathcal}{OMS}{cmsy}{m}{n}
%% return to ams like mathbb instead of unicode-math ones
%\let\mathbb\relax % remove the definition by unicode-math
%\DeclareMathAlphabet{\mathbb}{U}{msb}{m}{n}

\let\orimathcal\mathcal
\let\orimathbb\mathbb
\DeclareMathAlphabet{\amsmathcal}{OMS}{cmsy}{m}{n}
\DeclareMathAlphabet{\amsmathbb}{U}{msb}{m}{n}

%\global\let\plainlabel\label
%\global\let\plainref\ref

% Fake bold in way to \mathversion{bold} works
% on XeLaTeX/LuaLaTeX with unicode-math.
% It loose several math symbols.
% \setmathfont[version=bold,FakeBold=3.5]{Latin Modern Math}
% De
% https://tex.stackexchange.com/questions/64839/how-to-change-listing-caption

% save some values for lstlinting
\newcounter{lstorichapter}
\newcounter{lstorisection}
%\let\orilabel\label
%\let\oriref\ref
\newcommand{\emptyaddcontentsline}[3]{}
\let\oriaddcontentsline\addcontentsline

\newcounter{orilstlisting}

%\let\oriref\ref % without link
%\makeatletter
%\let\refstar\@refstar % without link
%\makeatother

% Example of untf8 verbatim write
%\newenvironment{writefile}[1]
% {\deactivateeightbit\VerbatimOut{#1.out}}
% {\endVerbatimOut}
%\makeatletter
%\newcommand{\deactivateeightbit}{%
%  \count@=127
%  \loop
%    \catcode\count@=12
%    \ifnum\count@<255
%    \advance\count@\@ne
%  \repeat
%}
%\makeatother

% from https://tex.stackexchange.com/questions/192941/showexpl-not-showing-caption-of-a-lstlisting-within to create vertical space
%\def\xstrut{\protect\rule[-2ex]{0pt}{2ex}}
%----------------------------------------------------------------

% showexpl's LTXexample preset
%\newcommand*\SX@@preset{%
%\renewcommand\documentclass[2][]{\SX@eat@version}%
%\renewcommand\usepackage[2][]{\SX@eat@version}%
%\renewenvironment{document}{}{}%
%\renewenvironment{figure}[1][]{\def\@captype{figure}}{}%
%\renewenvironment{table}[1][]{\def\@captype{table}}{}%
%\renewcommand\cite[1][]{}%
%\let\tableofcontens\relax \let\listoffigures\relax
%\let\listoftables\relax \let\printindex\relax
%\let\listfiles\relax \let\nofiles\relax
%\let\index\@gobble \let\label\@gobble
%\let\bibliography\@gobble
%\let\pagestyle\@gobble \let\thispagestyle\@gobble
%%%\let\immediate\relax \let\write\@gobbletwo
%%%\let\closeout\@gobble \let\@@input\@gobble
%\renewcommand\marginpar[2][]{}%
%\renewcommand\footnote[2][]{}%
%\let\@footnotetext\@gobble
%%%\abovedisplayskip=\z@
%%%\abovedisplayshortskip=\z@
%}
\makeatletter
\providecommand\SX@eat@version[1][]{}

\def\ltxlistingpresetfromshowexpl{%
\renewcommand\documentclass[2][]{\SX@eat@version}%
\renewcommand\usepackage[2][]{\SX@eat@version}%
\renewenvironment{document}{}{}%
\renewenvironment{figure}[1][]{\def\@captype{figure}}{}%
\renewenvironment{table}[1][]{\def\@captype{table}}{}%
\renewcommand\cite[1][]{}%
\let\tableofcontens\relax \let\listoffigures\relax
\let\listoftables\relax \let\printindex\relax
\let\listfiles\relax \let\nofiles\relax
\let\index\@gobble
% \let\label\@gobble
\let\bibliography\@gobble
\let\pagestyle\@gobble \let\thispagestyle\@gobble
%%\let\immediate\relax \let\write\@gobbletwo
%%\let\closeout\@gobble \let\@@input\@gobble
\renewcommand\marginpar[2][]{}%
%\renewcommand\footnote[2][]{}%
%\let\@footnotetext\@gobble
%%\abovedisplayskip=\z@
%%\abovedisplayshortskip=\z@
} % showexpl default preset

\makeatother

% ltxlisting preset
\newcommand{\ltxlistingpreset}{
\ltxlistingpresetfromshowexpl
%
\setcounter{lstorichapter}{\value{chapter}}%
\setcounter{chapter}{0}%
\setcounter{lstorisection}{\value{section}}%
\setcounter{section}{0}%
\let\oriaddcontentsline\addcontentsline%
\let\addcontentsline\emptyaddcontentsline%
\let\orimathcal\mathcal%
\let\orimathbb\mathbb%
\let\mathcal\amsmathcal%
\let\mathbb\amsmathbb%
\let\orimaketitle\maketitle
\let\maketitle\makearticletitle
\let\title\orititle
\let\author\oriauthor
\let\date\oridate
\let\orithempfootnote\thempfootnote
\renewcommand{\thempfootnote}{\arabic{mpfootnote}}
\setcounter{orilstlisting}{\value{lstlisting}}
}

\newcommand{\ltxlistingposset}{
\setcounter{chapter}{\value{lstorichapter}}%
\setcounter{section}{\value{lstorisection}}%
\let\addcontentsline\oriaddcontentsline%
\let\mathcal\orimathcal%
\let\mathbb\orimathbb%
\let\maketitle\orimaketitle
\let\thempfootnote\orithempfootnote
\setcounter{lstlisting}{\value{orilstlisting}}
}

\makeatletter
% from
% https://tex.stackexchange.com/questions/9035/how-to-pass-an-optional-argument-to-an-environment-with-verbatim-content
%
% \expandafter trick from
% https://tex.stackexchange.com/questions/196655/how-to-pass-figure-position-to-keyval-macro
\newenvironment{ltxlisting}{%
   \catcode`\^^M=\active
   \@ifnextchar[% se tem argumento opcional
       {\catcode`\^^M=5 \lxt@listing@start}
       {\catcode`\^^M=5 \lxt@listing@start[]}
}{\ltx@listing@end}

% Use of keyval from
% http://www.tex.ac.uk/FAQ-keyval.html
%
% Trick to ignore unkonown keys from
% https://tex.stackexchange.com/questions/314944/ignore-undefined-key-in-argument-its-defined-in-the-macro-before-its-used

\define@key{ltxlisting}{preset}{#1} % executte preset
% como eh dificil expandir segundo argumento antes do comando, define um comando auxiliar. Depois usar \expanafter para expandir argumento antes
\newcommand{\ltx@listing@setkeys}[1]{\setkeys{ltxlisting}{#1}}

%\def\lxt@listing@start[#1]{%
%  \begingroup
%    \ltxlistingpreset
%    % own preset
%    \let\KV@errx@ORI\KV@errx   % Save original error handling
%    \let\KV@errx\@gobble       % Ignore unknown keys
%      \setkeys{ltxlisting}{#1}
%    \let\KV@errx\KV@errx@ORI   % Restore original error handling
%    %
%    \def\ltx@listing@args{language={[LaTeX]TeX},#1}
%    \VerbatimEnvironment
%    % \deactivateeightbit
%    \begin{VerbatimOut}{\jobname.tmp}%
%}
%
%\def\ltx@listing@end{%
% \end{VerbatimOut}
% \begin{singlespacing}%
% \expandafter\lstinputlisting\expandafter[\ltx@listing@args]{\jobname.tmp}
% %\noindent
% \begin{framed} % frmae the output
% \noindent
% \begin{minipage}{\linewidth} % box the output
% \input{\jobname.tmp}
% \end{minipage}
% \end{framed}
% \end{singlespacing}%
% \ltxlistingposset
%\endgroup
%}

\def\lxt@listing@start[#1]{%
 %\begingroup
   \def\ltx@listing@args{language={[LaTeX]TeX},#1}
   \VerbatimEnvironment
   % \deactivateeightbit
   \begin{VerbatimOut}{\jobname.tmp}%
}

\def\ltx@listing@end{%
\end{VerbatimOut}    %
\begin{singlespacing}
\expandafter\lstinputlisting\expandafter[\ltx@listing@args]{\jobname.tmp}
\end{singlespacing}
% \begingroup
% \begin{singlespacing}%
%   \ltxlistingpreset
%    % own preset
%   \let\KV@errx@ORI\KV@errx   % Save original error handling
%   \let\KV@errx\@gobble       % Ignore unknown keys
%     \expandafter\ltx@listing@setkeys\expandafter{\ltx@listing@args}
%   \let\KV@errx\KV@errx@ORI   % Restore original error handling
% %\noindent
% \begin{framed} % frmae the output
% \noindent
% \begin{minipage}{\linewidth} % box the output
% \input{\jobname.tmp}
% \end{minipage}
% \end{framed}
% \end{singlespacing}%
% \ltxlistingposset
%\endgroup
%
\begin{ltxlistingout}[\ltx@listing@args]
\input{\jobname.tmp}
\end{ltxlistingout}
}

\newenvironment{ltxlistingout}[1][]
{ \begingroup
 \begin{singlespacing}%
 \ltxlistingpreset
 % own preset
 % disable keyval unknow 'key' error message for keyval
 \let\KV@errx@ORI\KV@errx   % Save original error handling
 \let\KV@errx\@gobble       % Ignore unknown keys
 % If xkeyval loaded, disable its one too
 \@ifpackageloaded{xkeyval}{%
   \let\XKV@err@ORI\XKV@err
   \let\XKV@err\@gobble
 }{}
   \expandafter\ltx@listing@setkeys\expandafter{#1}
%    \expandafter\ltx@listing@setkeys\expandafter{\ltx@listing@args}
 \let\KV@errx\KV@errx@ORI   % Restore original error handling for keyval
 \@ifpackageloaded{xkeyval}{\let\XKV@err\XKV@err@ORI}{}   % Restore original error handling for xkeyval
 %\noindent
 \begin{framed} % frame the output
 \noindent
 \begin{minipage}{\linewidth} % box the output
}{\end{minipage}
 \end{framed}
 \end{singlespacing}%
 \ltxlistingposset
 \endgroup
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%% ajuste de cabecalhos %%%%%%%%%%
% redefine a saida do capitulo e da secao
% \pagestyle{fancy} redefine eles,
%  entao deve colocar no final do ps@fancy
% para ter efeito. Usando \addto do babel
\makeatletter
 \addto\ps@fancy{%
   \renewcommand{\chaptermark}[1]{%
     \markboth{\if@mainmatter\thechapter. \fi #1}%
       {\if@mainmatter\thechapter. \fi #1}}
   \renewcommand{\sectionmark}[1]{%
     \markright{\if@mainmatter\thesection. \fi #1}}
 }
\makeatother

% redefinindo o estilo da pagina "fancy"
\fancyhf{} % limpa o cabecalho
% redefine o cabcalho. \nouppercase foi usado para eliminar conversao para maiusculo do sumario/bibliografia
\fancyhead[LE,RO]{\bfseries\thepage}
\fancyhead[LO]{\bfseries\nouppercase\rightmark}
\fancyhead[RE]{\bfseries\nouppercase\leftmark}

% redefine o "plain" (usado na primeira pagina do capitulo).
\fancypagestyle{plain}{%
  \fancyhead{} % get rid of headers
  \fancyhead[LE,RO]{\bfseries\thepage} % colocar enumeracao
  \renewcommand{\headrulewidth}{0.5pt} % com linha horizontal
}

% linha horizontal entre cabecalho e corpo do documento
\renewcommand{\headrulewidth}{0.5pt}

% sem linha horizontal entre corpo de texo e rodape
\renewcommand{\footrulewidth}{0pt}

%%%%%%%% fim da redefinicao do cabecalho %%%%%%%%%%%%

% Providenciando logos
%%%%%%%%%%%%%%%%%%%%%%
\makeatletter

\AtBeginDocument{%
% From
% https://wiki.lyx.org/LyX/Logotype
%\providecommand{\LyX}{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}

\ifx\LyX\undefined
\def\@@LyX{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}%
%
\@ifpackageloaded{hyperref}
{\DeclareRobustCommand{\LyX}{%
 \texorpdfstring{\@@LyX}{LyX}}}%
{\DeclareRobustCommand{\LyX}{\@@LyX}}
\fi

% From
% https://tex.stackexchange.com/questions/18089/are-there-any-command-for-producing-the-bibtex-logo
%\ifx\BibTeX\undefined
%  \def\BibTeX{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em%
%     T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}%
%\fi

\ifx\BibTeX\undefined
 \def\@@BibTeX{B\kern-.05em{\sc i\kern-.025em b}\kern-.08em\TeX}%
%
\@ifpackageloaded{hyperref}
{
\DeclareRobustCommand{\BibTeX}{%
 \texorpdfstring{\@@BibTeX}{BibTeX}}}%
{\DeclareRobustCommand{\BibTeX}{\@@BibTeX}}
\fi

% rotatebox trick from hologo (note that reflexbox fail inside section title)
%\ifx\XeTeX\undefined
%\@ifpackageloaded{hyperref}
%{
%\DeclareRobustCommand{\XeTeX}{%
%  \texorpdfstring{X\kern-.1667em\lower.7ex\hbox{\rotateboxbox[origin=c]{180}{E}}\kern-.125em\TeX}{XeTeX}}}%
%{\DeclareRobustCommand{\XeTeX}{%
%  X\kern-.1667em\lower.7ex\hbox{\rotateboxbox[origin=c]{180}{E}}\kern-.125em\TeX}}
%\fi

\ifx\XeLaTeX\undefined
\def\@@XeLaTeX{X\kern-.1667em\lower.7ex\hbox{\rotatebox[origin=c]{180}{E}}\kern-.125em\LaTeX}
%
\@ifpackageloaded{hyperref}
{
\DeclareRobustCommand{\XeLaTeX}{%
 \texorpdfstring{\@@XeLaTeX}{XeLaTeX}}}%
{\DeclareRobustCommand{\XeLaTeX}{\@@XeLaTeX}}
\fi

% \LaTeX and \LaTeXe from latex.ltx
%\DeclareRobustCommand{\LaTeX}{L\kern-.36em%
%        {\sbox\z@ T%
%         \vbox to\ht\z@{\hbox{\check@mathfonts
%                              \fontsize\sf@size\z@
%                              \math@fontsfalse\selectfont
%                              A}%
%                        \vss}%
%        }%
%        \kern-.15em%
%        \TeX}
%\DeclareRobustCommand{\LaTeXe}{\mbox{\m@th
%  \if b\expandafter\@car\f@series\@nil\boldmath\fi
%  \LaTeX\kern.15em2$_{\textstyle\varepsilon}$}}

} %\AtBeginDocument

% fim do logo
\makeatother

% do amssymb, mas nao tem no unicode-math.
% usado no exemplo de diagrama comutativa
% " eh mapeado no babel. use ^^^^
% \providecommand{\circlearrowleft}{\symbol{^^^^27f2}}

% \providecommand{\circlearrowleft}{\symbol{10226}}

%\providecommand{\circlearrowleft}{\char{^^^^27f2}}
% Nao tem o comando \UnicodeMathSymbol?
%\makeatletter
% \let\UnicodeMathSymbol\um@mathsymbol@noparse
% \UnicodeMathSymbol{^^^^027F2}{\circlearrowleft}{\mathrel}{left circle arrow}%
% \DeclareUnicodeCharacter{27F2}{\circlearrowleft} % do inputenc (utf8)
% \def\circlearrowleft{\mathrel{\char^^^^27f2}}
%\makeatother

\providecommand{\circlearrowleft}{\acwopencirclearrow} % from unicode-math

\providecommand{\circlearrowleft}{\acwgapcirclearrow} % from unicode-math
% unicode version of \acwgapcirclearrow not appear on version 2017 of latin Modern (Cambria Math of Microsoft has this symbol).
% Need to tested on newer version of Latin Modern

% Defining from from amssymb
%\ifx\circlearrowleft\undefined
%  % From AMS (amssymb)
%  \DeclareSymbolFont{AMSa}{U}{msa}{m}{n} % from amsfonts
%  \DeclareMathSymbol{\circlearrowright}{\mathrel}{AMSa}{"08}
%  \DeclareMathSymbol{\circlearrowleft}{\mathrel}{AMSa}{"09}
%\fi

% \square do amssymb não tem no unicode-math
% providenciando como \openbox do amsthm

%\ifx\square\undefined
%  \let\square\openbox
%\fi
\providecommand{\square}{\openbox}

% lmusrrache/rmustache não tem no Latin Modern Math
% unicode math redefine no comeco do documento.
% Portanto, deve redefinir no comeco do documento (não no preambulo)
% usando \AtBeginDocument
\DeclareSymbolFont{largesymbolsoriginal}{OMX}{cmex}{m}{n}
\AtBeginDocument{
%  \let\lmoustache\lmoustacheoriginal
%  \let\rmoustache\rmoustacheoriginal
\DeclareMathDelimiter{\lmoustache}{\mathopen}{largesymbolsoriginal}{"7A}{largesymbolsoriginal}{"40}
\DeclareMathDelimiter{\rmoustache}{\mathclose}{largesymbolsoriginal}{"7B}{largesymbolsoriginal}{"41}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% providenciando simbolos reservados para index, no indice remissivo
%
%\newcommand{\abssymbforindex}{|} % use \vert
%\index{delimitador!modulo@\abssymbforindex}
%\newcommand{\normsymbforindex}{\textbackslash |} % use \Vert
%\index{delimitador!norma@\normsymbforindex}

%\newcommand{\parenopensymbforindex}{$($}
%\index{delimitador!parenteaberta@$($}
%\newcommand{\parenclosesymbforindex}{$)$}
%\index{delimitador!parentefechada@$)$}
%\newcommand{\braceopensymbforindex}{$[$}
%\index{delimitador!colcheteaberta@[}
%\index{delimitador!colchetefechada@]}
%\newcommand{\curlyopensymbforindex}{\textbackslash\{}
\newcommand{\curlyopensymbforindex}{\{}
%\index{delimitador!chaveaberta@\curlyopensymbforindex}
%\newcommand{\curlyclosesymbforindex}{\textbackslash\}}
\newcommand{\curlyclosesymbforindex}{\}}
%\index{delimitador!chavefechada@\curlyclosesymbforindex}
\newcommand{\arrobasymbforindex}{$@$}
\newcommand{\exclsymbforindex}{$!$}

% Legenda a ser colocada embaixo da tabela/figura, conforme ABNT
% \providecommand{\legend}[1]{\par \medskip #1 \smallskip}
\providecommand{\legend}[1]{\par \medskip #1}

%%%%%%%%%%%%%%%%%%%%%
% provide some files
%-------------------
% \usepackage{filecontents} % nao precisa do pacote, se for usado no preamble e nao precisar reescrever quando arquivo ja existe
\begin{filecontents}{latex-via-exemplos-tabela.txt}
% Parabola
% % ou # marca a linha de comentario
-2      4
-1.5    2.25
-1.0    1
-0.5    0.25
0       0
0.5     0.25
1       1
1.5     2.25
2       4
\end{filecontents}

%\begin{filecontents}{latex-via-exemplos-lista-nomes.csv}
%"Nome","Trabalho","Observacao"
%"Nome 1","Trabalho 1",
%"Nome 2","Trabalho 2",
%\end{filecontents}

% Informações
%%%%%%%%%%%%%
\title{\LaTeXe{} Via Exemplos}
\author{Sadao Massago\thanks{DFQM-UFSCar -- Campus de Sorocaba, SP
(\url{http://dfqm.sorocaba.ufscar.br/})} }
% Versão preliminar: janeiro a abril de 2018
% Primeira versão publica (0.5): abril de 2018.
% Primeira atualizacao (0.5.1): junho de 2018.
% Segunda atualização, adicionando o ABNT (0.5.2): junho de 2018.
% Terceira atualização (0.5.3): junho de 2018.
% Quarta atualização (0.5.4): agosto de 2019
% Quinta atualização (0.5.6): dezembro de 2019
% Sexta atualização (0.5.7): julho de 2021
% Setima atualização (0.5.8): 17 de maio de 2022
% Oitava atualização (0.5.9): 01 de maio de 2023
% Nona atualização (0.5.9): 01 de maio de 2023}
% Decima atualização (0.5.10): 08 de dezembro de 2024
% Decima primeira atualização (0.5.11): 08 de dezembro de 2024
% Decima segunda atualização: 19 de dezembro de 2024
% Decima terceira atualização: 29 de dezembro de 2024
% Decima quarta atualização: 31 de dezembro de 2024
% Decima quinta atualização: \date{06 de janeiro de 2025}
% Decima sexta atualização:
\date{08 de agosto de 2025}

%%%%%%%%%%%%%%%%%%%%%%%
% Documet start here
%----------------------
% INICIO DO DOCUMENTO
%%%%%%%%%%%%%%%%%%%%%%%
\pagestyle{empty}
\begin{document}

\maketitle

\thispagestyle{empty}

Copyright \textcopyright 2018--2025 por Sadao Massago.
Todos os direitos reservados.
Este documento é software livre; podendo ser redistribuído e/ou modificado de acordo com os termos da Licença Pública do Projeto LaTeX (LPPL); versão 1.3c da Licença, ou (se for sua opção) qualquer versão posterior.
Veja \url{http://www.latex-project.org/lppl.txt}.

\

A versão atual deste documento está disponível em \\
\url{https://ctan.org/pkg/latex-via-exemplos}

%%{CTAN://info/latex-via-exemplos}

\clearpage\thispagestyle{empty}\cleardoublepage
\frontmatter
\chapter*{}
``\emph{Ninguém é tão pobre que nada possa dar e ninguém é tão rico que não precise receber}''
(Alvaro Granha Loregian)

\clearpage\thispagestyle{empty}\cleardoublepage
\frontmatter

% adiciona bookmark no PDF
\phantomsection
\pdfbookmark[chapter]{Prefácio}{prefacio}
%\pdfbookmark[0]{Prefácio}
\chapter*{Prefácio}
O \LaTeXe{} é um sistema de processamento de documentos implementados sobre o \TeX.

O objetivo deste documento é apresentar o \LaTeXe{} de forma gradativa, usando os exemplos.
Assim, o documento contém muitos exemplos e suas saídas, o que aumentou consideravelmente as páginas.

Este documento está dividido em 19 capítulos mais os apêndices.

Do Capítulo~1 até Capítulo~14 utilizam somente os pacotes da \texttt{base} e de \texttt{required} na qual qualquer sistema \LaTeX{} devem conter.
Do capítulo 15 a 18 utilizam os pacotes que não são da \texttt{base} e de \texttt{required} para incrementar a funcionalidade.
Nos apêndices, serão tratados alguns recursos extras que podem ser interessantes, mas que julgar que não sejam de interesse de todos.

Capítulo~1 é uma breve introdução sobre o sistema.

Capítulo~2 trata do primeiro documento em \LaTeXe, incluindo introdução à escrita de textos.

Capítulo~3 introduz sobre fórmulas matemáticas.

Capítulo~4 trata sobre estrutura de textos.

Capítulo~5 é uma continuação do Capítulo~3, tratando sobre fórmulas matemáticas.

Capítulo~6 trata sobre definições de comandos e ambientes.

Capítulo~7 discute sobre divisão lógica de documentos, conhecido como ``seccionamentos''.

Capítulo~8 trata de definições e uso dos ambientes do tipo teoremas.

Capítulo~9 discute sobre a criação de figuras e tabelas flutuantes, tabelas longas e inclusão de imagem externa.

Capítulo~10 trata sobre ajuste das fontes e espaçamentos.

Capítulo~11 trata sobre referências bibliográficas e índice remissivos. \BibTeX{} também será introduzido neste capítulo.

Capítulo~12 trata sobre medidas e contadores.

Capítulo~13 e 14 exploram várias possibilidades dentro dos pacotes de \texttt{base} e \texttt{required} que não foram discutidos nos capítulos anteriores.

Capítulo~15 discute o uso de pacotes fora do \texttt{base} e \texttt{required} para ajuste de documentos.
A partir deste capítulo, serão apresentados pacotes fora do \texttt{base} e \texttt{required}.
Isto significa que os pacotes indicados podem precisar de instalação a parte em alguns sistemas.

Capítulo~16 discute o pacote \texttt{xcolor} especial para cores, e \texttt{tikz} espacial para criar ilustrações.

Capítulo~17 ilustra a criação de \texttt{poster} e \texttt{slides} de apresentação.

Capítulo~18 apresenta o uso de \XeLaTeX{} e Lua\LaTeX, considerado como a próxima geração de \LaTeX.

Capítulo~19 apresenta a formatação no padrão de Associação Brasileira de Normas Técnicas (ABNT)\index{ABNT}.

Apêndice~A é sobre símbolos básicos do \LaTeX.

Apêndice~B é sobre como escrever um pacote (arquivo de estilos).

Apêndice~C trata de editor \LyX{} que permite elaborar documentos de forma mais visual como os editores para escritórios, em vez de editar diretamente o código fonte em \LaTeX.

Apêndice~D trata da mala direta, criação do caderno de resumos, folhetos, etc que são interessantes para organizadores de eventos.

Apêndice~E trata de pacotes úteis para elaborar provas e lista de exercícios.

Apêndice~F trata de pacotes interessantes para desenvolver projetos tal como escrever um livro ou similar.

Apêndice~G descreve alguns aplicativos livres interessantes que auxilia os usuários de \LaTeX.
\

% Sorocaba, abril de 2018.
% Sorocaba, junho de 2018.
% Sorocaba, agosto de 2019.
% Sorocaba, dezembro de 2019.
% Sorocaba, julho de 2021.
% Sorocaba, maio de 2022.
% Sorocaba, outubro de 2023.
% Sorocaba, dezembro de 2024.
% Sorocaba, janeiro de 2025.
Sorocaba, agosto de 2025.

\

Sadao Massago \verb+<[email protected]>+

%\pagestyle{headings}


\clearpage\thispagestyle{empty}\cleardoublepage

\pagestyle{fancy}

\phantomsection
\pdfbookmark[chapter]{\contentsname}{toc}
\tableofcontents

\clearpage\thispagestyle{empty}\cleardoublepage
\phantomsection
\pdfbookmark[chapter]{Lista de \lstlistingname s}{lstlisting}
\lstlistoflistings

\clearpage\thispagestyle{empty}\cleardoublepage
\mainmatter
\chapter{Introdução}

\LaTeX{} é um sistema de diagramação de documentos profissional largamente utilizados, desenvolvido sobre o \TeX{}.
Para quem entende inglês, os livros impressos recomendados são \cite{book:lamport:1994} e \cite{book:goossens:2004}.
Outros textos recomendados que podem ser lidos gratuitamente são \cite{book:oeticker:2018}, \cite{misc:indiantug:2000} e \cite{book:wikibook:latex}.
Note que a tradução em português brasileiro do \cite{book:oeticker:2018} costuma estar desatualizado em relação à versão original.
Então prefira a versão em inglês.

\section{Uma breve história}
O \TeX{} \cite{book:knuth:1986} e a fonte padrão \texttt{Computer Modern}, foram desenvolvidos pelo \emph{Donald Kunuth}\index{Donald Kunuth} em 1977 a 1985.
Dos sistemas implementados sobre o \TeX, o mas usado é o \LaTeX{} \cite{book:lamport:1986} desenvolvido pela equipe de \emph{Leslie Lamport}\index{Leslie Lamport}, concluido em 1985.
A versão mais utilizada do \LaTeX{} foi concluído em 1994 que é o \LaTeXe{} \cite{book:lamport:1994}.
Em 2004, o \TeX{} começou a suportar oficialmente o \texttt{utf-8}, facilitando a elaboração de documentos multi-idiomas.
Em 2007, o Xe\TeX{} que suporta o uso de fontes do sistema implementado inicialmente no \texttt{Mac OSX} foi portado para \texttt{linux} e \texttt{Windows}.
Em 2008, o recurso de sincronização do documento fonte com o \texttt{PDF} tornou fácil e \texttt{PDF} foi substituindo a saída DVI do \TeX{} na diagramação.
Em 2010 foi lançado a primeira versão estável do Lua\TeX{}, considerado como o sucessor do PDF\TeX{}.
O Lua\TeX{}, além de poder usar as fontes do sistema como o Xe\TeX, também pode estender a funcionalidade com a linguagem \texttt{script} \texttt{Lua}.

\section{Como usar \LaTeX{}}
O \TeX{}\index{TeX} é um sistema de compilação de documentos e o \LaTeX{}\index{LaTeX} é um conjunto de macros (instruções) para automatizar e facilitar a diagramação de documentos.

O documento é preparado como arquivo texto num editor de texto, compilado pelo \LaTeX{}, visualizado e corrigido e compilado novamente, até obter o resultado desejado.
O arquivo fonte do documento costuma ser editado no editor próprio para \LaTeX{} tais como \texttt{TeXMaker}\index{TeXMaker} (\url{http://www.xm1math.net/texmaker/}) e \texttt{TeXStudio}\index{TeXStudio} (\url{https://www.texstudio.org/}), ambos disponível livremente em várias plataformas.
Além de recursos para facilitar a escrever documentos, eles contam com botões de compilação e visualização, assim como sincronismo de \texttt{PDF} com o código fonte.
Para quem quer a funcionalidade mais próxima dos aplicativos de escritórios que permite visualizar como vai ficar enquanto escreve e quer elaborar o documento usando botões e menus em vez de digitar comandos, poderá optar pelo \LyX{}\index{LyX} (\url{https://www.lyx.org/}) que também é livre e suporta várias plataformas.
Para evitar erros de escrita, é recomendável que ative o corretor ortográfico com idioma desejado, o que depende de cada editor.
Para compilar, deverá instalar alguma distribuição de \TeX{}.
Em geral, o mais recomendado é o \texttt{TeXLive}\index{TeXLive} para \texttt{Linux}, \texttt{MacTeX}\index{MacTeX} para \texttt{Mac OSX} e \texttt{MikTeX}\index{MikTeX} para \texttt{Windows}, todos são livres.

Evite usar o espaço no nome de arquivos para \LaTeX, pois o sincronismo do código fonte com o \texttt{PDF} (posicionar \texttt{PDF} na posição correspondente à linha de código fonte e vice-versa) pode tornar parcial.

\clearpage\thispagestyle{empty}\cleardoublepage
\chapter{Iniciando um Documento}
Neste capítulo, vamos tratar do básico de como começar um documento \LaTeX.

\section{Primeiro documento}
Um documento em \LaTeX{} inicia-se com o comando \verb+\documentclass+\index{documentclass} que especifica qual tipo de documentos será diagramado.
Em seguida, será especificado os pacotes (conjunto de instruções) adicionais a serem carregados e também será realizada algumas configurações. Esta parte do documento é chamado de \texttt{preamble}\index{preamble} (preâmbulo) do documento.
Depois inicia o conteúdo do documento com \verb+\begin{document}+, escreve o corpo do documento e finaliza o documento com \verb+\end{document}+.

O código do primeiro documento e sua saída em \texttt{pdf} (que está dentro da moldura) seria como do Exemplo~\ref{ex02:inicial}.

% \begin{spacing}{1}
%\begin{singlespacing}
%\begin{LTXexample}[pos=b,caption={ex01-01.tex},label=ex:01-01]
\begin{ltxlisting}[caption={ex02-inicial.tex},label=ex02:inicial]
\documentclass[12pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[brazil]{babel}

\begin{document}
Este é primeiro parágrafo.
Continuando o primeiro parágrafo.

Este é o segundo parágrafo.

Espaço extra      são eliminados.
\end{document}
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}

O comando do \LaTeX{} inicia com o caractere especial ``\verb+\+''\index{\textbackslash@\verb+\+}.
O primeiro comando \verb+\documentclass+\index{documentclass@\verb+\documentclass+} tem como parâmetros delimitados pelos colchetes e outro com chaves.
O que é delimitado pelo chaves é o parâmetro obrigatório\index{parâmetro!obrigatório} (aqui, é o \texttt{article}).
Os parâmetros colocados entre colchetes, separados pela vírgula são os opcionais\index{parâmetro!opcional}.
Neste exemplo, são \texttt{12pt} e \texttt{a4paper}.
Opcionais significa que pode ou não colocar tais opções.
O parâmetro obrigatório (colocado entre chaves) do comando \verb+\documentclass+ é o tipo de documentos.
Aqui foi escolhido o \texttt{article}\index{article} (artigo) que tem como objetivo, colocar maior quantidade de informações no espaço limitado.
Outro tipo de documento bastante usados é o \texttt{book}\texttt{book} (livro).
Os parâmetros opcionais usados foram \texttt{12pt}\index{12pt} que é o tamanho de letra\index{tamanho!letra} em 12pt e \texttt{a4paper}\index{a4paper} que é o tamanho do papel\index{tamanho!papel} em padrão \texttt{A4}.

Depois segue com sequência de comandos \verb+\usepackage+\index{usepackage@\verb+\usepackage+}.
O \verb+\usepackage+ carrega o pacote\index{pacote} (conjunto de instruções) que configura o documento ou disponibiliza os comandos específicos.
O \LaTeX{} dispõe uma grande quantidade de pacotes, uma para casa situação.
No Exemplo~\ref{ex02:inicial}, foram carregados os pacotes \texttt{fontenc}, \texttt{inputenc} e \texttt{babel}, todos eles com um parâmetro.
O primeiro pacote \texttt{fontenc}\index{fontenc} é usado para especificar a codificação das fontes de letras.
A opção \texttt{T1} indica que a fonte está em \texttt{T1} que dispõe de letras de 8-bits (acentuadas).
Esta opção é útil para definir a regra de hifenização local do documento no \texttt{preamble} e efetuar busca de texto com letras acentuadas no \texttt{PDF} final.
A seguir, o pacote \texttt{inputenc}\index{inputenc} especifica a codificação do documento fonte (o que está editando).
Atualmente, o \texttt{utf8} é o recomendado, mas antigamente usava o \texttt{latin1} para português brasileiro.
Note que \texttt{inputenc} foi colocado depois da \texttt{fontenc}.
Assim, a faixa de coberta dos caracteres é maior, não limitando somente a faixa de \texttt{T1}.

O terceiro e último pacote deste exemplo é o \texttt{babel} com a opção \texttt{brazil}.
O pacote \texttt{babel}\index{babel} seleciona a regra de hifenização e nomes dos elementos (como figura, capítulo, etc) para idioma especificada.
A opção \texttt{brazil} ou \texttt{brazilian} escolhe o português brasileiro (não confundir com a opção \texttt{portugese} que escolherá português de Portugal).

Depois encontra o \verb+\begin{document}+.
O comando \verb+\begin+\index{begin@\verb+\begin+} inicia um ambiente.
Um ambiente\index{ambiente} é uma configuração que será aplicado nos trechos entre \verb+\begin{<ambiente>}+ e \verb+\end{<ambiente>}+\index{end@\verb+\end+}.
O \verb+\begin{document}+ e \verb+\end{document}+
determina o ambiente de documento na qual seus conteúdos serão colocados no arquivo \texttt{PDF}.

A quebra de linha não efetua quebra de linha na saída.
Para que tenha um novo parágrafo\index{parágrafo} de fato, deverá pular uma linha.

Note que, se tiver mais de um espaço, o \LaTeX{} interpretará como um único espaço.

Para gerar o arquivo \texttt{PDF}, deverá processar com o \LaTeX.
Salve o arquivo com extensão \texttt{tex} e clique no botão de \texttt{Compilar} no caso de \texttt{TeXMaker} e botão \texttt{LaTeX} no caso de \texttt{TexStudio} (na versão mais nova, é um triângulo verde).

\section{Mensagem de erro e correção}

Quando ocorre erro de compilação, o \texttt{TeXMaker} mostrará em vermelho na parte de baixo e indicará a linha onde ocorreu o erro.
Maioria dos editores para \LaTeX{} posicionará automaticamente na linha do primeiro erro quando compila.
Para demais erros, ao clicar nas mensagens de erros em vermelho, posicionará automaticamente na linha correspondente a tais erros.
Para melhorar a precisão da localização de erros, quebre o parágrafo em várias linhas (lembre-se que quebra de linha não afeta o documento final).

Assim, deve corrigir os erros e compilar de novo, até sumir com todos os erros.

Quando compila o documento, o \texttt{TeXMaker} posicionará na página do \texttt{PDF}, correspondente aonde fica o cursor no editor de texto. Para localizar qual código gerou uma determinada parte de \texttt{PDF}, clique no botão direito sobre parte do \texttt{PDF} e escolha ``clique para ir para a linha''.

\section{Caracteres especiais}
Existem vários caracteres especiais reservados para os comandos e similares do \LaTeX. Por exemplo, ``\verb+\+'' é usado para iniciar um comando, chaves é usado para indicar os parâmetros, etc.
Para inserir estes caracteres especiais\index{caracteres especiais} no documento, deverá usar os comandos especiais de \LaTeX.

%A seguir, alguns deles.
No código fonte do Exemplo~\ref{ex02:caracteres}, foi colocado somente os trechos que ficam no corpo do documento.
Para que o arquivo compile, deverá colocar entre \verb+\begin{document}+ e \verb+\end{document}+ do arquivo válido como do Exemplo~\ref{ex02:inicial}.

%\begin{singlespacing}
% \begin{LTXexample}[pos=b,caption={ex01-02.tex},label=ex:01-02]
\begin{ltxlisting}[caption={ex02-caracteres.tex},label=ex02:caracteres]
% esta é comentário
Alguns caracteres especiais:
\textbackslash, \$, \#, \%, \&, \_, \{, \}

Alguns acentos no modo TeX:
\'a, \`a, \^e, \'\i, \~a, \"u

``Abrindo e fechando aspas''

Logo do \LaTeX{} e do \TeX
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}

O Exemplo~\ref{ex02:caracteres}
% é uma parte do arquivo de exemplo \texttt{ex01-02.tex} que
mostra alguns comandos para produzir caracteres especiais.

Note que as letras com a acentuação direta\index{acentuacao@{acentuação}!direta} pelo teclado é suportado, desde que \verb+\usepackage[utf8]{inputenc}+ ou equivalentes sejam colocados no \texttt{preamble} do documento.
No exemplo acima, foi mostrado a acentuação do modo \TeX{}\index{acentuacao@{acentuação}!modo \TeX} que pode ser usados em alguns casos especiais, tais como dentro do arquivo de referências bibliográficas, ou arquivos de pacotes.
Note que \verb+\'+ acentua a letra seguinte, mas ``i'' tem pingo e ``í'' (com acento) não tem pingo. \verb+\i+ é o comando para produzir ``i'' sem pingo\index{i sem pingo}.
No derivado de e-TeX como o TeX autual, costuma automatizar a retirada de pingo quando acentua, eliminando a necessidade do uso de i sem pingo.

Note também que o acento agudo no modo \TeX{} é produzido por apóstrofos e não pelo acento agudo.
Apóstrofos\index{apóstrofos} é aberto por um acento agudo e fechado pelo apóstrofos.
Aspas\index{aspas} é aberto pelos dois acentos agudos e fechado pelos dois apóstrofos (fiquem atentos de que fechamento de aspas é dois apóstrofos e não é aspas).

No \LaTeX, quando encontra ``\%''\index{comentario@{comentário}}\index{\%}, o restante desta linha será considerado como comentário\index{comentário} e é ignorado completamente.

Comentário é importante para inserir observações sobre o código, ou desativar um trecho do código.
Em geral, quem quer remover um trecho do código de \LaTeX{} no documento, simplesmente comenta o trecho, pois se algum dia quiser ativar, é só remover o ``\%'' do comentário.

Para comentar/descomentar um trecho maior no \texttt{TeXMaker}, selecione o trecho e use o \texttt{Editar->Comentar} e \texttt{Editar->Descomentar}.

Quando editar um documento, existem palavras que devem aparecer grudados (não pode ficar primeira parte no final de linha e outra no começo da linha) como no caso de enumeração de páginas, exemplos, teoremas, etc.
Neste caso, usa-se o til (\verb+~+\index{\verb+~+}) em vez do espaço\index{espaço!não quebrável}.
Por exemplo, no caso de ``\verb+página~1+'', não acontece de ``\texttt{página}'' ficar no final de uma linha e ``\verb+1+'' ficar no começo da próxima linha. Outros casos é colocar entre artigos e pronomes, como em \verb+O~Teorema de Pitágoras+ para evitar que o artigo fique no final de uma linha e restante na próxima linha.

Por último, quando insere comandos e precisa ter espaço depois dele, coloque um par de chaves\index{espaço!depois do comando}. Por exemplo, ``\verb+\LaTeX produz+'' ficaria como ``\LaTeX produz'' (grudados) enquanto que ``\verb+\LaTeX{} produz+'' ficará como ``\LaTeX{} produz'' (com espaço correto). Também lembre-se que no comando de \LaTeX, maiúsculo e minusculo são distinguidas.
Portanto, ``\verb+Latex+'' ou ``\verb+\latex+'' resultarão em erros em vez de produzir logotipo de \LaTeX.

\clearpage\thispagestyle{empty}\cleardoublepage
\chapter{Introdução às Fórmulas Matemáticas}
Neste capítulo, veremos um pouco sobre as fórmulas matemáticas.

\section{Fórmula \texttt{textstyle} e \texttt{displaystyle}}

Uma fórmula matemática (ou modo matemático) \texttt{textstyle}\index{textstyle} (ou \texttt{inlinestyle}\index{inlinestyle}) é uma fórmula no meio do texto.
Por exemplo, denotaremos uma sequência por $\{x_n\}$ e seu limite por $\lim_n\to\infty x_n$ é modo \texttt{textstyle}, pois fórmulas estão no meio do texto.
Agora as fórmulas matemáticas que ocupam linha separada de texto como em
\[
x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}
\]
é denominado de fórmula matemática no modo \texttt{displaystyle}\index{displaystyle}.

A fórmula no modo \texttt{textstyle} devem ficar delimitados entre ``\$''\index{\$} ou ``\textbackslash(''\index{\textbackslash parenteaberta@{\textbackslash$($}} e  ``\textbackslash)''\index{\textbackslash parentefechada@{\textbackslash$)$}}, ou ainda poderá usar o ambiente \texttt{math}\index{math}.
O mais usado é delimitar com ``\$''.

A fórmula no modo \texttt{displaystyle} devem ficar delimitados entre ``\$\$''\index{\$\$} (dois dólares) ou ``\textbackslash[''\index{\textbackslash[} e  ``\textbackslash]''\index{\textbackslash]}, ou ainda poderá usar o ambiente \texttt{displaymath}\index{displaymath}.
E recomendado que delimite com \textbackslash['' e  ``\textbackslash]'',
pois delimitar com ``\$\$'' (dois dólares) dificultará a depuração (achar erros).

%\begin{singlespacing}
%\begin{LTXexample}[pos=b,caption={ex02-01.tex},label=ex:02-01]
\begin{ltxlisting}[caption={ex03-formulas.tex},label=ex03:formulas]
Solução da equação $ax^2+bx+x=0$ é dado pela fórmula
\[
x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}
\]

Elemento da matriz $A$ costuma ser denotado por $a_{ij}$
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}


No modo matemático, ``\verb+^+''\index{\^{}@\verb+^+} é usado para indicar a potência\index{modo matematico@{modo matemático}!potencia@{potência}} e ``\_''\index{\_@\verb+_+} indica o índice\index{modo matematico@{modo matemático}!indice@{índice}}.
Outros comandos utilizados foram, \verb+\frac+\index{frac@\verb+\frac+} que produz frações\index{modo matematico@{modo matemático}!fracao@{fração}}, onde primeiro parâmetro é numerador e segundo, o denominador.
O comando \verb+\sqrt+\index{sqrt@\verb+\sqrt+} produz raiz\index{raiz} do argumento.
O comando \verb+\pm+\index{modo matematico@{modo matemático}!operador!\verb+\pm+, $\pm$} é o símbolo $\pm$.
Na matemática, muitos símbolos são usados e o \LaTeX{} dispõe de comandos para cada uma desses símbolos.
Em geral, o editor para \LaTeX{} dispõe de painel de inserção dos símbolos matemáticos para ajudar na elaboração do documento.
No caso de \texttt{TeXMaker}, tem um botão no painel lateral esquerdo que permitem ativar tais painéis, organizados em grupos.
As letras gregas\index{letra!grega} no \LaTeX{} são produzidas pelo comando com nome em inglês.
Se nome começar em maiúsculo, será letra grega maiúscula.

Note que, quando os parâmetros de um comando for mais de um (mais de uma letra, por exemplo), deverá colocar entre chaves, como foram feitos para \verb+\frac+ e \verb+sqrt+.

Isto vale também para expoentes e índices, como foi feito no elemento da matriz (com índices de duas letras).

O comando \verb+\sqrt+\index{sqrt@\verb+\sqrt+} aceita o parâmetro opcional (delimitado pelos colchetes) para poder produzir raiz $n$-ésima.
O \verb+$\sqrt[n]{x}$+ produz $\sqrt[n]{x}$.
O Exemplo~\ref{ex03:simbolos} ilustra algumas letras gregas e símbolos.
Note que uma tabela completa de símbolos do \LaTeX{} \cite{book:pakin:2017} está disponível gratuitamente.

%\begin{singlespacing}
% \begin{LTXexample}[pos=b,caption={ex02-01.tex, parte b},label=ex:02-01:b]
\begin{ltxlisting}[caption={ex03-simbolos.tex},label=ex03:simbolos]
Algumas letras gregas minúsculas: $\alpha, \beta, \gamma, \lambda, \pi$.

Algumas letras gregas Maiúsculas: $\Gamma, \Delta, \Lambda, \Pi, \Omega$.

Alguns símbolos:
$\le, \ge, \neq, \in, \notin, \exists, \nexists, \to, \infty, \forall, \therefore$.
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}

\section{Modo \texttt{displaystyle} no meio do texto}
As fórmulas no meio do texto (\texttt{textstyle}) são produzidos de forma que economize a sua altura.
Por isso, elementos que normalmente ficariam empilhados, ficariam como índice e expoente.
Por exemplo, $\displaystyle \lim_{n\to\infty}x_n$ no modo \texttt{textstyle}  ficaria como $\lim_{n\to\infty}x_n$.
Para que uma fórmula fique como \texttt{displaystyle} no meio do texto\index{modo matematico@{modo matemático}!displaystyle!meio do texto}, coloque \verb+\displaystyle+ no começo das fórmulas. O Exemplo~\ref{ex03:displaystyle} ilustra o caso.

%\begin{singlespacing}
\begin{ltxlisting}[pos=b,caption={ex03-displaystyle.tex},label=ex03:displaystyle]
Temos que $\lim_{n\to\infty}x_n=0$ %textstyle
e  $\displaystyle \lim_{n\to\infty}x_n=0$ %displaystyle

Outros casos $\sum_{i=0}^n i = 0+1+\cdots+n$
e $\displaystyle \sum_{i=0}^n i = 0+1+\cdots+n$.

Forçando a colocar encima/embaixo
\[ \int\limits_I f = \int^b_af(x)dx \]
Forçar a não colocar encima/embaixo
\[ \sum\nolimits_{k=0}^n x_k = 1 \]
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}

Para forçar a colocar elementos embaixo em vez de como índice quando usa o ``\verb+_+'', usa-se o comando \verb+\limits+, como no Exemplo~\ref{ex03:displaystyle}.
% Observação: No LuaLaTeX 0.8 (2018-02-17), \limits acima não funcionou bem. O valor de baixo fica um pouco mais para direita.
% Idem para \mathop{}. No XeLaTeX, fica igual a do PDFLaTeX.
% Na versao 2018, ja estava resolvido tal problema

Note que, para colocar no modo \texttt{textstyle} nas fórmulas \texttt{displaystyle}, existe o comando \verb+\textstyle+\index{modo matematico@{modo matemático}!textstyle} que é usado de forma similar a \verb+\displaystyle+.
Nesta família de comandos, também existe o comando \verb+\scriptstyle+\index{modo matematico@{modo matemático}!scriptstyle} que tenta  reduzir o tamanho das fórmulas.

\section{Equação enumerada e referências cruzadas}

Uma equação enumerada é produzido pelo ambiente \texttt{equation}\index{equation}.
Quando algum comando do \LaTeX{} enumera automaticamente (equações, seções, capítulos, figuras, tabelas, itens de istas enumeradas, teoremas, etc), sua enumeração pode ser guardada e usada no outro lugar, recurso conhecido como referência cruzada\index{referência cruzada}.
Para tanto, coloca-se o comando \verb+\label{nome do rótulo}+\index{label@\verb+\label+} que produz um rótulo\index{rótulo} que armazena a enumeração e \verb+\ref{nome do rótulo}+\index{ref@\verb+\ref+} aonde quer colocar esta enumeração.
O Exeplo~\ref{ex03:ref} ilustra o uso da referência cruzada.

%\begin{singlespacing}
%% truque do https://www.latex4technics.com/?note=30gq
%% para referencia funcionar no LTXexample
%\let\orilabel\label
%\setcounter{lstorichapter}{\value{chapter}}
%\begin{LTXexample}[pos=b,caption={ex02-02.tex},label=ex:02-02,preset={\let\label\orilabel,\setcounter{chapter}{1}}]
\begin{ltxlisting}[caption={ex03-ref.tex},label=ex03:ref]
\begin{equation}\label{eq:pitagoras}
a^2=b^2+c^2
\end{equation}
Pela Equação~\ref{eq:pitagoras} da página~\pageref{eq:pitagoras}\ldots
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}
%\setcounter{chapter}{\value{lstorichapter}}

Como já foi mencionado, o ambiente \texttt{equation} produz enumeração automática na equação.
Assim, poderá criar um rótulo para referenciar o número desta equação com o comando \verb+\label+.
O nome do rótulo escolhido para esta equação foi \texttt{eq:pitagoras}.
Tome cuidado para não usar espaços, letras acentuadas ou símbolos especiais, o que dificulta a depuração ou causa erros.
No Exemplo~\ref{ex03:ref}, ``:'' foi usado em vez do espaço para separar palavras.
Note que foi colocado o prefixo ``eq'' para rótulo da equação.
Como pode ter teoremas, equações, figuras, etc que podem sugerir o mesmo nome, é costume usar algum prefixo para cada categoria, o que facilitará a lembrar o elemento que é associado ao rótulo.
Para referenciar (usar o número) da equação, foi usado o comando \verb+\ref+ e para referenciar a página, foi usado o comando \verb+\pageref+\index{pageref@\verb+\pageref+}.
Note que os editores especializados para \LaTeX, costuma ter recursos de listar os rótulos existentes para referências, o que facilita a editoração e prevenir erros.
Também note o uso de ``\verb+~+''\index{\~{}@\verb+~+} em vez do espaço para usar referências, o que evita que nome ``Equação'' fique no final de uma linha e numeração no começo da próxima linha.

Quando usa a referência cruzada, as enumerações sempre estarão coerentes e se usar o pacote \texttt{hyperref}, terão link automáticos no documento PDF.

Uma observação importante é o fato do \LaTeX{} utilizar arquivo auxiliar para armazenar rótulos. Assim, quando usa as referências cruzadas, precisam compilar o documento duas vezes para ter a enumeração ou link correta.

\clearpage\thispagestyle{empty}\cleardoublepage
\chapter{Estrutura de Texto}\label{chap:estrutura:texto}
Neste capítulo, vamos ver sobre a formatação de textos.

\section{Alinhamentos}
O alinhamento do texto padrão no \LaTeX{} é justificado\index{alinhamento!justificado}, isto é, alinhado tanto a direita como a esquerda.
Para alinhar somente a esquerda\index{alinhamento!esquerda} ou a direita\index{alinhamento!direita}, usa-se o ambiente \texttt{flushleft}\index{flushleft} e \texttt{flushright}\index{flushright}.
Para centralizar\index{alinhamento!centralizado}, usa-se o ambiente \texttt{center}\index{center}.
O Exemplo~\ref{ex04:alinhamento} ilustra os alinhamentos de texto.

%\begin{singlespacing}
% \begin{LTXexample}[pos=b,caption={ex01-04.tex},label=ex:01-04]
\begin{ltxlisting}[caption={ex04-alinhamento.tex},label=ex04:alinhamento]
Parágrafo normal.
\begin{center}
Parágrafo centralizado.
\end{center}
\begin{flushright}
Parágrafo alinhado a direita.
\end{flushright}
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}

Quando quer alinhar dentro do ambiente (o que tem \verb+\begin+ e \verb+\end+, poderá colocar como comando \verb+\center+\index{center@\verb+\center+}, \verb+\flushleft+\index{flushleft@\verb+\flushleft+} e \verb+\flushright+\index{flushright@\verb+\flushright+}, respectivamente que o alinhamento se aplicará até obter o final do ambiente em questão.

Para ter trecho justificado em ambos os lados dentro do ambiente com alinhamento a esquerda, direita ou centralizada, costuma colocar dentro do ambiente \texttt{minipage} que veremos na Seção~\ref{sec:minipage}.

Não é o alinhamento, mas para incluir linhas em branco\index{linhas em branco}, deverá colocar ``\verb+\+'' intercalado com linhas em branco.
Para indicar uma nova linha\index{nova linha} (finalizar uma linha sem esperar atingir final de linha), coloca se ``\verb+\\+''\index{\textbackslash\textbackslash} ou \verb+\newline+\index{newline@\verb+\newline+}.
Para inserir quebra de linhas\index{quebra de linha}, mas que justifique, deverá usar o \verb+\linebreak+\index{linebreak@\verb+\linebreak+}, o que é ilustrado no Exemplo~\ref{ex04:nova:linha}

%\begin{singlespacing}
\begin{ltxlisting}[caption={ex04-nova-linha.tex},label=ex04:nova:linha]
Esta é a primeira linha \\
e esta e a segunda linha

\

Esta é a primeira linha \linebreak
e esta é a segunda linha.
\end{ltxlisting}
%\end{singlespacing}

Note o uso de ``\verb+\+''\index{\textbackslash@\verb+\+} para inserir linha em branco.

\section{Notas de rodapé e ênfase de texto}

Nota de rodapé\index{nota de rodapé} é colocado pelo comando \verb+\footnote{<texto>}+\index{footnote} que colocará marca de rodapé no local e \verb+<texto>+ na parte inferior da página atual.

Ele é usado para colocar alguma observação, mas não quer que conste como conteúdo do documento.
Por exemplo, explicação dos termos que aparece, podem ser colocados como rodapé. Veja o Exemplo~\ref{ex04:rodape}

% showexpl usa \parbox e não o minipage.
% Assim, nao há como colocar footnote embaixo dele.
% Usando lstlisting e minipage para ter mesmo effeito de showexpl
%\begin{singlespacing}
%\begin{lstlisting}[caption={ex06-08.tex},label=ex:06-08]
\begin{ltxlisting}[caption={ex04-rodape.tex},label=ex04:rodape]
No meio do texto, podemos colocar a nota de rodapé\footnote{nota que fica na parte inferior da página} para explicações adicionais tais como significado da palavra, ou fonte que foi usada.
\end{ltxlisting}
% \end{singlespacing}

%\noindent
%\begin{framed}
%\begin{singlespacing}
%\begin{minipage}{\linewidth}
%\renewcommand{\thempfootnote}{\arabic{mpfootnote}}
%No meio do texto, podemos colocar a nota de rodapé\footnote{nota que fica na parte inferior da página} para explicações adicionais tais como significado da palavra, ou fonte que foi usada.
%\end{minipage}
%\end{singlespacing}
%\end{framed}

Para enfatizar o texto\index{enfase@{ênfase} de texto} dentro do contexto como os termos a ser definidos, usa-se o comando \verb+\emph{texto}+\index{emph@\verb+\emph+} ou o ambiente \texttt{em}\index{em}.
Este comando (ou ambiente) alterna entre fontes romano reto e itálico para que o trecho seja enfatizado.
%Outra ênfase comum as palavras é usar o negrito que faz destacar no meio do texto. O negrito é produzido pelo comando \verb+\textbf{texto}+ ou pelo ambiente \texttt{bfseries}.
Note que os ambientes \texttt{em} tem a versão de comandos \verb+\em+\index{em@\verb+\em+} que pode ser usados dentro do outro ambiente (como os comandos de alinhamento).
Caso não esteja dentro do ambiente, poderá delimitar simplesmente pelos chaves e colocar o comando no começo dele. Isto está ilustrado no Exemplo~\ref{ex04:enfase}.

%\begin{singlespacing}
% \begin{LTXexample}[pos=b,caption={ex03-01.tex},label=ex:03-01]
\begin{ltxlisting}[caption={ex04-enfase.tex},label=ex04:enfase]
\emph{Enfatizado} ou
\begin{em}enfatizado\end{em}
ou
\begin{center}
\em Centralizado e enfatizado.
\end{center}
ou
{\em Enfatizado.}
Texto normal.
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}

%Para as diversas necessidades, é possível controlar as fontes, o que será estudado no Capítulo~\ref{chap:fontes}.

\section{Listas}

O texto pode ter várias estruturas básicas, tais como listas, cotações, etc.

Uma das mais utilizadas é listas.
%Veremos alguns deles.

%Vamos começar pelas listas.

Existem três tipos básicos de listas\index{lista} que são especificadas pelos ambientes \texttt{enumerate}\index{enumerate} (lista enumerada\index{lista!enumerada}), \texttt{itemize}\index{itemize} (lista de itens\index{lista!itemizada}) e \texttt{description}\index{dscription} (lista de descrições\index{lista!descrição}).
Dentro de cada ambiente, cada item\index{lista!item} é iniciado com o comando \verb+\item+\index{item@\verb+\item+}.
O Exemplo~\ref{ex04:listas} ilustra algumas destas listas.

%\begin{singlespacing}
% \begin{LTXexample}[pos=b,caption={ex06-01.tex},label=ex:06-01]
\begin{ltxlisting}[caption={ex04-listas.tex},label=ex04:listas]
\begin{enumerate}
 \item Este é o primeiro item da lista enumerada.
 \item Agora, segundo item da lista enumerada
\end{enumerate}
\begin{itemize}
 \item Este é o primeiro item da lista de itens.
 \item Agora, segundo item da lista de itens.
\end{itemize}
\begin{itemize}
 \item Item com marcador padrão.
 \item [$\ast$] Item com marcador personalizado.
\end{itemize}
\begin{description}
 \item [enumerada] Cada item recebe uma enumeração.
 \item [itenizada] Em vez de enumeração, recebe um marcador.
 \item [descrição] Descrição das palavras.
\end{description}
\end{ltxlisting}
%\end{singlespacing}

As listas podem conter outras listas como itens\index{sub listas}.
Veja Exemplo~\ref{ex04:sublistas}.

%\begin{singlespacing}
%\begin{LTXexample}[pos=b,caption={ex06-01.tex, parte b},label=ex:06-01:b]
\begin{ltxlisting}[caption={ex04-sublistas.tex},label=ex04:sublistas]
\begin{enumerate}
 \item Este é o primeiro item da lista enumerada.
 \item Segundo item é lista de itens.
   \begin{itemize}
     \item Este é o primeiro item da lista de itens.
     \item Agora, segundo item da lista de itens.
   \end{itemize}
 \item Este é o terceiro item da lista enumerada.
\end{enumerate}
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}

Para trabalhar com listas enumeradas, é aconselhável carregar o pacote \texttt{enumerate}\index{enumerate} que permite controlar as enumerações\index{lista!enumerada!controle}.
Para isso, acrescente o comando \verb+\usepackage{enumerate}+ no \texttt{preamble} do documento.

No \texttt{enumerate}, passa-se um parâmetro opcional que seria o modelo de enumeração do primeiro item.
Neste modelo, ``1'', ``i'', `` I'', ``a'' e ``A'' serão considerados contadores e eles são incrementados a cada item.
Se aparecer estas letras que não sejam contadores, delimite pelos chaves.
Veja o Exemplo~\ref{ex04:enumerate}.

%\begin{singlespacing}
% \begin{LTXexample}[pos=b,caption={ex06-01.tex, parte c},label=ex:06-01:c]
\begin{lstlisting}[caption={ex04-enumerate.tex},label=ex04:enumerate]
\documentclass[12pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amssymb}
\usepackage{enumerate}
\begin{document}
\begin{enumerate}[Propr{i}ed{a}de 1)]
 \item $x + (y + z) = (x + y) + z$ (associativa)
 \item $x + y = y + x$ (comutativa)
\end{enumerate}
\end{document}
\end{lstlisting}
%\end{singlespacing}

% Precisa acertar a margem esquerda (conflito dos pacotes, ou
% por estar dentro do ambiente?
%\begin{singlespacing}
\begin{ltxlistingout}
\begin{enumerate}[label={Propriedade \arabic*)},leftmargin=8em]%listparindent={\widthof{\labelitemi}}]
 \item $x + (y + z) = (x + y) + z$ (associativa)
 \item $x + y = y + x$ (comutativa)
\end{enumerate}
\end{ltxlistingout}
%\end{singlespacing}

Se precisar de ambientes extras de listas diferentes do padrão, podemos definir usando o ambiente \texttt{list}\index{list}, o que não vamos entrar em detalhes.

\section{Tabelas}

Uma tabela\index{tabela} no modo texto é produzido pelo ambiente \texttt{tabular}\index{tabular} e a tabela no modo matemático é produzido pelo ambiente \texttt{array}\index{array}, que apresentam o mesmo sintaxe e a mesma funcionalidade.

O argumento obrigatório destes ambientes é o ``alinhamento'' das colunas que devem ser especificados com ``l'' (left), ``c'' (center), ``r'' (right) ou ``p\{largura\}'' (texto justificado com largura fixa).
Para traçar uma linha vertical entre colunas ou no bordo, usa-se o ``\verb+|+''\index{"@vertical@\vert}, junto as especificações de alinhamento.
Os elementos da tabela é indicado, separado pelo ``\&''\index{\&}, sendo que a mudança de linhas é feito pelo ``\verb+\\+''\index{\textbackslash\textbackslash} que é \verb+\newline+.
Para traçar uma linha horizontal, usa-se o comando ``\verb+\hline+''\index{hline@\verb+\hline+}.

O Exemplo~\ref{ex04:tabular} é um exemplo de tabelas no modo texto.

%\begin{singlespacing}
%\begin{LTXexample}[pos=b,caption={ex06-02.tex},label=ex:06-02]
\begin{ltxlisting}[caption={ex04-tabular.tex},label=ex04:tabular]
 \begin{tabular}{||l|c|r||} % linhas verticais duplas na borda e simples entre colunas
  \hline % uma linha horizontal no comeco da tabela
      & 2 & 3 \\ \hline % uma linha horizontal apos esta linha
  abc & 3 & 4 \\
  3   & 4 & $\frac{1+\sqrt{2}}{5}$ \\ \hline % uma linha horizontal pra finalizar
 \end{tabular}

 Tabela com uma coluna de largura fixa.

 \begin{tabular}{|p{3.5cm}|l|} \hline
  cenouras  (500g)          & R\$0,50  \\ \hline
  cogumelos (vidro de 500g) & R\$5,00  \\ \hline
  batata    (1Kg)           & R\$1,20  \\ \hline \hline
  total                     & R\$7,20  \\ \hline
\end{tabular}

Tabela de largura fixa

% largura da tabela é 0.5 de \columnwidth (largura da linha)
\begin{tabular*}{0.5\columnwidth}{@{\extracolsep{\fill}}|l|c|r|}
  \hline
      & 2 & 3 \\ \hline
  abc & 3 & 4 \\
  3   & 4 & $\frac{1+\sqrt{2}}{5}$ \\ \hline
 \end{tabular*}

\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}

Para mesclar células\index{tabela!mesclar células} (juntar mais de uma célula como sendo uma única célula), usa-se o comando \texttt{multicolumn}\index{multicolumn} que tem como primeiro argumento, o número de células a serem juntados, o segundo especifica o alinhamento da coluna e terceiro, o que vai colocar nesta célula.
Note que as formatações de colunas do \texttt{multicolumn} deve ser especificado um por um, independente de estar especificado ou não no começo da tabela.

No Exemplo~\ref{ex04:multicolumn} com o ambiente \texttt{array} (para ambiente matemático), foi usado o \texttt{multicolumn} para juntar duas primeiras colunas da primeira linha, centrando os dados e traçando linha vertical antes e depois da célula.

%\begin{singlespacing}
%\begin{LTXexample}[pos=b,caption={ex06-02.tex, parte b},label=ex:06-02:b]
\begin{ltxlisting}[caption={ex04-multicolumn.tex},label=ex04:multicolumn]
\[
 \begin{array}{||l|c|r||} \hline
  \multicolumn{2}{||c|}{2} & 3 \\ \hline
  2^3 & 3 & 4 \\
  3 & 4 & \frac{1+\sqrt{2}}{5} \\ \hline
 \end{array}
\]
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}

Para traçar linhas horizontais apenas em algumas células, usa-se o comando \texttt{\textbackslash cline\{i-j\}}\index{cline@\verb+\cline+} onde ``\texttt{i}'' e ``\texttt{j}'' são colunas iniciais e finais onde a linha é traçada. Veja o Exemplo~\ref{ex04:cline}.

%\begin{singlespacing}
% \begin{LTXexample}[pos=b,caption={ex06-02.tex, parte c},label=ex:06-02:c]
\begin{ltxlisting}[caption={ex04-cline.tex},label=ex04:cline]
\begin{tabular}{||l|lr||} \hline
\textbf{Produto}  & \multicolumn{2}{|c||}{\textbf{Preços}} \\\hline
  cenouras   & R\$1.00 & (por Kg) \\ \cline{2-3}
             & R\$0.20 & (por unidade) \\ \hline
  cogumelos  & R\$4.00 & \multicolumn{1}{|r||}{(por vidro)} \\ \cline{1-1} \cline{3-3}
  pêssego    &   & \multicolumn{1}{|r||}{(por Kg)} \\ \hline
\end{tabular}
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}

No Exemplo~\ref{ex04:cline}, o comando \texttt{multicolumn} foi usado somente para formatar a coluna (colocar linha vertical) e não para juntar células.

Para alinhar os decimais, usamos o pacote \texttt{dcolumn}\index{dcolum}
que define um novo especificador de colunas na tabela, especificado por \texttt{D\{<decimal em TeX>\}\{<decimal em PDF>\}\{<casas decimais>\}}.

\texttt{<decimal em TeX>} é a especificação de pontos decimais usado no arquivo TeX (como escreve no TeX),
\texttt{<decimal em PDF>} é o decimal utilizado para documento de saída PDF, e o \texttt{<casas decimais>} é o número de casas decimais a serem considerados (casas decimais excedentes serão truncados).
Caso a especificação do número de casas decimais for negativo, qualquer número de casas decimais é aceito sem ser truncados (alinhando nos pontos decimais).

Como especificar três parâmetros toda vez que precise alinhar os pontos decimais é trabalhoso, é sugerido que defina um especificador no \texttt{preamble}, usando o comando \texttt{newcolumntype}\index{newcolumntype@\verb+newcolumntype+} como abaixo:

\begin{singlespacing}
\begin{lstlisting}[language={[LaTeX]TeX}]
\usepackage{dcolumn}
\newcolumntype{d}[1]{D{.}{\cdot}{#1}}
\newcolumntype{.}{D{.}{.}{-1}}
\newcolumntype{,}{D{,}{,}{2}}
\end{lstlisting}
\end{singlespacing}

Ele define especificador de colunas ``d{<num>}'' que é interpretado como \texttt{D\{.\}\{\cdot\}\{<num>\}} e, ``.'' e ``,'' que serão interpretados como sendo \texttt{D\{.\}\{.\}\{-1\}} e \texttt{D\{,\}\{,\}\{2\}} respectivamente.

Note que podemos modificar os comandos anteriores para que ``.'' seja convertida para ``,'' ou vice versa.
Veja o Exemplo~\ref{ex04:dcolumn}.

%\begin{singlespacing}
%\begin{LTXexample}[pos=b,caption={ex06-02.tex, parte d},label=ex:06-02:d]
\begin{ltxlisting}[caption={ex04-dcolumn.tex},label=ex04:dcolumn]
\documentclass[12pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amssymb}
\usepackage{dcolumn}
\newcolumntype{d}[1]{D{.}{\cdot}{#1}}
\newcolumntype{.}{D{.}{.}{-1}}
\newcolumntype{,}{D{,}{,}{2}}
\begin{document}
\begin{tabular}{|d{-1}|d{2}|.|,|}
\hline
1.2   & 1.2   &1.2    &1,2    \\
1.23  & 1.23  &12.5   &300,2  \\
1121.2& 1121.2&861.20 &674,29 \\
184   & 184   &10     &69     \\
4    & .4    &       &,4     \\
     &       &.4     & \\ \hline

\end{tabular}
\end{document}
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}

Para ter as colunas igualadas automaticamente, usamos o pacote \texttt{tabularx}\index{tabularx} que define o ambiente \texttt{tabularx} onde primeiro argumento é largura da tabela e segundo é especificação de colunas, mas apresenta um especificador de coluna especial ``X''.
Todas as colunas especificadas por ``X'' terá mesma largura
(largura destas colunas depende da largura da tabela).
Veja o Exemplo~\ref{ex04:tabularx}.

%\begin{singlespacing}
% \begin{LTXexample}[pos=b,caption={ex06-02.tex, parte e},label=ex:06-02:e]
\begin{ltxlisting}[caption={ex04-tabularx.tex},label=ex04:tabularx]
\documentclass[12pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amssymb}
\usepackage{tabularx}
\begin{document}
\begin{tabularx}{\linewidth}{|c|X|c|X|}
\hline
\multicolumn{2}{|c|}{\texttt{multicolumn} } &
\scshape Terceira & \scshape Quarta \\ \hline
primeira & a largura desta coluna depende da largura da
tabela. &
terceira & Quarta coluna funciona da forma similar a segunda e terá a mesma largura da segunda \\ \hline
\end{tabularx}
\end{document}
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}

No Exemplo~\ref{ex04:tabularx}, foi usado o comando \verb+\linewidth+\index{linewidth@\verb+\linewidth+} que é a medida da largura da linha atual.
Este comando aparece frequentemente quando queremos ajustar largura de um elemento para largura da linha atual.
Mais sobre medidas, veja a Seção~\ref{sec:medidas:unidade} e Seção~\ref{sec:medidas} do Capítulo~\ref{chap:medidas:contadores}.

O comando \verb+\footnote{texto}+ que coloca o ``texto'' no rodapé do documento funciona também dentro do \texttt{tabularx}.

Para ajustes de tabelas de forma mais profissional, pode precisar do \texttt{booktabs}\index{booktabs} (não é da categoria \texttt{base/required}) e se precisar traçar linhas duplas ou similares na tabela, podemos usar o pacote \texttt{hhline}\index{hhline}. Também existe o pacote para tabela colorida \texttt{colortbl}\index{colortbl}  (não é da categoria \texttt{base/required}). Não entraremos em detalhes destes pacotes, mas vale observar que \texttt{hhline} não funciona no \texttt{tabularx}.


\section{Ambiente de tabulação}

Ambiente de tabulação\index{tabulação}\index{tabulação} é bastante útil para escrever conteúdos alinhados em diversos pontos, tal como no caso de algoritmos.
O ambiente é especificado pelo \texttt{tabbing}\index{tabbing}.

Para marcar a posição de tabulação, usa-se o comando \verb+\=+.
Quando uma linha for usado somente para marcar posição, coloca-se o comando \verb+\kill+\index{kill@\verb+\kill+} no final dele, para que o mesmo não seja impresso.

Para formatar conteúdos tabulados, é comum que queira tabular várias linhas sucessivas.
O comando \verb"\+"\index{+@\verb'\+'} translada a margem esquerda por
uma tabulação e \verb"\-"\index{-@\verb+\-+} retira uma tabulação da margem esquerda.
Com isso, podemos diagramar textos tabulados como no caso do algoritmo do Exemplo~\ref{ex04:tabbing}.

%\begin{singlespacing}
%\begin{LTXexample}[pos=b,caption={ex06-03.tex},label=ex:06-03]
\begin{ltxlisting}[caption={ex04-tabbing.tex},label=ex04:tabbing]
\begin{tabbing}
mm\=mm\=mm\=mm\=mm\= \kill % apenas para marcar tabulação
\{ Solução real da equação $ax^2+bx+c=0$ pela fórmula de Baskara \} \\
 $\Delta = b^2-4ac$ \\
 se d < 0 então \+ \\ % aplicar uma tabulação em todas linhas de abaixo
    escreva ``não há solução real'' \\
    pare \- \\ % retirar uma tabulação de todas linhas de abaixo
 senão \+ \\
    $x_1 = \frac{-b-\sqrt{\Delta}}{2a}$ \\
    $x_2 = \frac{-b+\sqrt{\Delta}}{2a}$ \- \\
 fim se
\end{tabbing}
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}

Se por algum motivo, pretende usar a acentuação no modo \TeX{} dentro do ambiente \texttt{tabbing}, note que existe três acentos no modo \TeX{} que não podem ser usados dentro do \texttt{tabbing} que são \verb+\'+, \verb+\`+ e \verb"\=".
Estes comandos são reservados para controle de tabulação.
Assim, estes três comandos devem ser substituídos pelos comandos \verb+\a'+\index{a'@\verb+\a'+}, \verb+\a`+\index{a`@\verb+\a`+} e \verb"\a="\index{a=@\verb+\a=+} respectivamente (eles só funcionam dentro do \texttt{tabbing}).

Existem vários outros comandos que podem ser explorados no ambiente \texttt{tabbing}, mas não vamos entrar em detalhes.
Uma observação é que no caso de algoritmos ou código fonte de programas, existem pacotes específicos que implementam ambientes bem mais fáceis e versáteis do que \texttt{tabbing}.

% citados, \texttt{quotation}, \texttt{verse} e \texttt{verbatim}
\section{Textos de citações, versos e \texttt{verbatim}}

O ambiente \texttt{quote}\index{quote} é usado para escrever citações\index{citações} (trecho de outra fonte), exemplos e frases importantes.
O Exemplo~\ref{ex04:quote} foi extraído do ``The Not (So) Short Introduction to \LaTeX2e'' \cite{book:oeticker:2018}.

%\begin{singlespacing}
%\begin{LTXexample}[pos=b,caption={ex06-04.tex},label=ex:06-04]
\begin{ltxlisting}[caption={ex04-quote.tex},label=ex04:quote]
``Uma regra da tipografia sobre
o comprimento de uma linha é:
\begin{quote}
Em média, nenhuma linha deve
ser maior que 66 caracteres.
\end{quote}
Este é o motivo pelo qual as
páginas do \LaTeX{} possuem as
bordas tão grandes e também o
motivo pelo qual os jornais usam
impressão em colunas''.
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}

No ambiente \texttt{quote} usado para colocar citações (trecho tirado da outra fonte), o texto inteiro ficará com margens maiores a esquerda e a direita, o que tornaria visível quando colocar texto maior.

Quando o texto da citação é formado por vários parágrafos, pode querer que os parágrafos sejam indentados (tabulados para a direita).
Neste caso, use o ambiente \texttt{quotation}\index{quotation} em vez de
\texttt{quote}.
O Exemplo~\ref{ex04:quotation} também usa o trecho do \cite{book:oeticker:2018} que explica os ambientes similares a \texttt{quote}, ficou com parágrafo indentado:

%\begin{singlespacing}
%\begin{LTXexample}[pos=b,caption={ex06-04.tex, parte b},label=ex:06-04:b]
\begin{ltxlisting}[caption={ex04-quotation.tex},label=ex04:quotation]
Veja que a cópia do trecho do ``The Not (So) Short Introduction to \LaTeX2e'' que explica os ambientes similares a \texttt{quote}, ficou com parágrafo indentado:
\begin{quotation}
``Existem dois ambientes similares: os ambientes quotation e verse.
Como ambiente \texttt{quotation} faz a indentação dos parágrafos,
ele é usado para citações longas que se estendem por vários parágrafos.
O ambiente \texttt{verse} é usado em poemas onde as quebras de linhas são importantes.
As linhas são separadas por \verb+\\+ e por uma linha em branco no fim de cada verso''.
\end{quotation}
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}

No caso de versos\index{verso}, a linha que for quebrado pela falta de espaços, mas que constitui a mesma linha de cima, deve estar tabulado para direita.
O ambiente \texttt{verse}\index{verse} encarrega deste serviço.

O Exemplo~\ref{ex04:verse} é um exemplo do ``Humpty Dumpty'' do \cite{book:oeticker:2018}, colocado na caixa com largura insuficiente.
Para criar caixas mais estreitas, foi usado o ambiente \texttt{minipage} que será tratado na Seção~\ref{sec:minipage} do Capítulo~\ref{chap:estrutura:texto}.


%\begin{singlespacing}
%\begin{LTXexample}[pos=b,caption={ex06-04.tex, parte c},label=ex:06-04:c]
\begin{ltxlisting}[caption={ex04-verse},label=ex04:verse]
\begin{flushleft}
\begin{minipage}{0.5\linewidth}
\begin{verse}
Humpty Dumpty sat on a wall:\\
Humpty Dumpty had a great fall.\\
All the King's horses and all
the King's men\\
Couldn't put Humpty together
again.
\end{verse}
\end{minipage}
\end{flushleft}
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}

Para inserir o código fonte de programas\index{código fonte!programma} ou similar, usa-se o ambiente \texttt{verbatim}\index{verbatim} que coloca o texto de jeito que está (cópia \texttt{verbatim}). Este ambiente possui também a versão ``*'' \texttt{verbatim*}\index{verbatim*}.
Sem o ``*'', coloca o espaço e com o ``*'', coloca o caractere ``\verb*+ +'' no lugar de espaço.
Veja a diferença entre o código colocado pelo \texttt{verbatim} e \texttt{verbatim*} do Exemplo~\ref{ex04:verbatim}.

%\begin{singlespacing}
%\begin{LTXexample}[pos=b,caption={ex06-04.tex, parte d},label=ex:06-04:d]
\begin{ltxlisting}[caption={ex04-verbatim.tex},label=ex04:verbatim]
\begin{verbatim}
\begin{quote}
texto citado, texto importante ou exemplos.
\end{quote}
\end{verbatim}

\begin{verbatim*}
\begin{quote}
texto citado, texto importante ou exemplos.
\end{quote}
\end{verbatim*}
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}

O ambiente \texttt{verbatim} é usado para colocar conteúdos que devem ser lidos letra por letra, como no cado do código fonte de programas ou trecho de documentos muito importantes.

Para nome das variáveis do programa, nome de arquivos, etc que são curtos, mas também precisam ser lidos letra por letra, existe a versão comando que é \verb+\verb+\index{verb@\verb+\verb+}.
No \verb+\verb+, o primeiro caractere é o delimitador do argumento que deve ser usado também para indicar o final do argumento. Este delimitador pode ser escolhido (só não pode ser ``*''), mas fique atento que o final do argumento deve usar mesmo caractere.
A versão com ``*''\index{verb*@\verb+\verb*+} exibe o espaço como``\verb+ +''.
Veja o Exemplo~\ref{ex04:verb}.

%\begin{singlespacing}
% \begin{LTXexample}[pos=b,caption={ex06-04.tex, parte e},label=ex:06-04:e]
\begin{ltxlisting}[caption={ex04-verb.tex},label=ex04:verb]
O comando \verb+\%+ produz ``\%''.

Nome de arquivos com espaço tal como \verb*|meu arquivo.tex|
não é recomendado para \LaTeX, pois dificulta a sincronização de PDF com o código fonte.
Use ``\verb+-+'' no lugar de espaço, como em \verb*|meu-arquivo.tex|.
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}

Para textos longos no ambiente \texttt{verbatim} deve carregar o pacote \texttt{verbatim}\index{verbatim} no ``preamble''.
Este pacote efetua algumas melhorias no ambiente \texttt{verbatim} e também implementa o comando \verb|\ver­batiminput|\index{verbatiminput@\verb+\verbatiminput+} que insere o arquivo externo diretamente no ambiente \texttt{verbatim}.

Note que, para inserir trecho dos códigos fontes de programas, existem pacotes apropriados que é mais prático do que usar o ambiente \texttt{verbatim}.

% \texttt{minipage}
\section{Caixa \texttt{minipage}}\label{sec:minipage}
O ambiente \texttt{minipage}\index{minipage} cria uma ``caixa'' que não é exatamente uma estruturação de textos, mas é usado frequentemente quando não encontra ambiente pronto para estruturação desejada.

Por exemplo, podemos colocar um bloco de texto justificado no lado direito da página, como no Exemplo~\ref{ex04:minipage}.

%\begin{singlespacing}
%\begin{LTXexample}[pos=b,caption={ex06-04.tex, parte f},label=ex:06-04:f]
\begin{ltxlisting}[caption={ex04-minipage.tex},label=ex04:minipage]
\begin{flushright}
\begin{minipage}{0.5\linewidth}
Este texto ficará justificado, mas como fica dentro de \texttt{minipage},
podemos colocar no lado direito.
Para tanto, basta colocar \texttt{minipage} dentro do \texttt{flushright}.
Claro que podemos colocar equações, figuras e outros elementos sem problemas.
Por exemplo, o Teorema de Pitágoras foi posto abaixo:
\[ a^2=b^2+c^2 \]
\end{minipage}
\end{flushright}
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}

O argumento obrigatório para o ambiente \texttt{minipage} é a largura da ``caixa''.
No Exemplo~\ref{ex04:minipage}, foi usado \verb+0.5\linewidth+ que é metade da largura da linha.

Este ambiente é importante para colocar um parágrafo de texto dentro dos comandos que não aceitam os parágrafos.
Por exemplo, \verb+\fbox{}+\index{fbox@\verb+\fbox+} coloca moldura no elemento, mas não aceita o parágrafo de texto.
Então, como colocar moldura no texto com várias linhas, ou nas figuras?
É simples: colocar tudo no \texttt{minipage} e colocar dentro do \texttt{fbox}, como no Exemplo~\ref{ex04:minipage:fbox}.

%\let\orifootnote\footnote
%\begin{singlespacing}
%\begin{LTXexample}[pos=b,caption={ex06-04.tex, parte g},label=ex:06-04:g,preset=\let\footnote\orifootnote]
\begin{ltxlisting}[caption={ex04-minipage-fbox.tex},label=ex04:minipage:fbox,preset={\renewcommand{\thempfootnote}{\alph{mpfootnote}}}]
\fbox{
\begin{minipage}{0.75\linewidth} % 3/4 da largura de linha
Usando o \texttt{minipage}, podemos colocar moldura no texto com parágrafo como este.

O \texttt{fbox} não acusa erros por ter parágrafo, pois o que está dentro de \texttt{minipage} é apenas um ``objeto''.

Este truque funciona também para outros comandos que impede de colocar parágrafos, mudar linhas, etc.

Note que as notas de rodapé\footnote{rodapé é colocado pelo comando \texttt{\textbackslash footnote\{texto\} } }
colocado dentro do minipage ficará na parte de baixo do \texttt{minipage} e não da página.
O padrão dentro do \texttt{minipage} é enumerar eles como letra e não com números.
\end{minipage}
} % fbox
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}

Para elementos com poucas linhas de código, a versão comando \verb+\parbox+\index{parbox@\verb+\parbox+} é mais prático de ser usado.
Mas \verb+\parbox+ é mais simplificado do que \texttt{minipage}, podendo perder alguns recursos.
Por exemplo, alguns comandos e ambientes tais como \verb+\verb+ e \texttt{verbatim} não funcionam dentro do \verb+\parbox+.
Assim, prefira usar o \texttt{minipage} sobre \verb+\parbox+.
Veja o Exemplo~\ref{ex04:parbox}.

%\begin{singlespacing}
%\begin{LTXexample}[pos=b,caption={ex06-07.tex},label=ex:06-07]
\begin{ltxlisting}[caption={ex04-parbox.tex},label=ex04:parbox]
Texto normal
\fbox{\parbox{3cm}{texto em várias linhas. \\ Com moldura.}}
Texto continua.
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}

O primeiro parâmetro do \verb+\parbox+ é a largura, como no caso de \texttt{minipage}.
Tanto no \texttt{minipage} como o \texttt{parbox}, \verb+\linewidth+\index{linewidth@\verb+\linewidth+} dentro dele é a largura da caixa passada como parâmetro.

%linewidth: \the\linewidth
%
%\parbox{0.5\linewidth}{linewidth: \the\linewidth}
%
%\begin{minipage}{0.5\linewidth}
%linewidth: \the\linewidth
%\end{minipage}

\section{Colunas múltiplas de texto}
Dependendo do documento, usa-se mais de uma coluna.
Isto é o caso de alguns artigos que podem usar duas colunas, ou \texttt{poster} que costuma usar três colunas ou mais.
Mesmo no documento de uma coluna, o índice remissivo costuma ficar em duas colunas.
Apesar da maioria das classes de documentos tem implementado a opção de documento em duas colunas (opção \texttt{twocolumn}\index{twocolumn}) e comandos para alternar entre uma e duas colunas (comandos \verb+\onecolumn+\index{onecolumn@\verb+\onecolumn+}
e \verb+\twocolumn+\index{twocolumn@\verb+\twocolumn+}), a forma mais prático é usar o pacote \texttt{multicol}\index{multicol} que implementa o ambiente \texttt{muticols}\index{multicols} que permite criar qualquer número de colunas.
O padrão é não traçar linhas separando colunas, mas isto pode ser alterado, como no Exemplo~\ref{ex04:multicols}.
Aqui foi usado o \verb+\setlength+ para alterar a medida da espessura de linha que separa as colunas.
Medidas serão tratadas em Seção~\ref{sec:medidas:unidade} e Seção~\ref{sec:medidas} do Capítulo \ref{chap:medidas:contadores}.
O Exemplo~\ref{ex04:multicols} ilustra o uso de múltiplas colunas.

%\begin{singlespacing}
%\begin{LTXexample}[pos=b,caption={ex10-02.tex},label=ex:10-02]
\begin{ltxlisting}[caption={ex04-multicols.tex},label=ex04:multicols]
\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[brazil]{babel}
\usepackage{color}
\usepackage{color}
\usepackage{multicol} % permite usar multiplas linhas
% espessura da linha que separa as colunas (0pt para desabilitar)
\setlength{\columnseprule}{1pt}
\begin{document}
Este parágrafo está como uma única coluna, padrão para maioria das classes de documentos.
\begin{multicols}{2} % inicia duas colunas
Este parágrafo está em duas colunas.
O ambiente \texttt{multicols} balanceia os conteúdos em colunas para que todas colunas tenham mesmo tamanho.
Se preferir que passe para próxima coluna somente quando a coluna ficar cheia, use a versão ``*'' que não balanceia seus conteúdos.

Se quer finalizar a coluna manualmente, poderá usar o \verb+\columnbreak+ que finaliza a coluna atual e passa para próxima coluna.
\end{multicols} % finaliza o mode de duas colunas
Agora está no modo de uma única coluna novamente.
\end{document}
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}

%A cor da linha de divisão também pode ser configurada, o que não discutiremos aqui.
%% cor da linha que separa as colunas
%\def\columnseprulecolor{\color{blue}}

%
%
%Tratar do uso do pacote \texttt{multicols}

\clearpage\thispagestyle{empty}\cleardoublepage
\chapter{Aprofundando nas Fórmulas Matemáticas}
Neste capítulo, vamos aprofundar mais nas fórmulas matemáticas.
Para suporte à matemática, os pacotes \texttt{amssymb}\index{amssymb} e \texttt{amsmath}\index{amsmath} são usados.
Portanto, coloque o comando \verb+\usepackage{amssymb,amsmath}+ no \texttt{preamble} do documento.

\section{Usando algumas fontes matemáticas}
Na matemática, além dos símbolos especiais e letras gregas, também usam alfabetos romanos de formatos diferentes.
Por exemplo, para o conjunto dos números, costuma usar ``negrito do quadro negro'' (por exemplo, letra de traço duplo do AMS).
Tais fontes são selecionados pelos comandos apropriados.
Aqui veremos alguns dos mais usados.

O conjunto dos números como real, racional, etc, usam a letra maiúscula em ``negrito do quadro negro''. Para tanto, poderemos usar o comando \verb+\mathbb+\index{modo matematico@{modo matemático}!alfabeto!\verb+\mathbb{ABCdef123}+, $\mathbb{ABCdef123}$}.

Para Conjunto de funções contínuas, costuma usar a letra ``C'' maiúscula na forma caligráfica.
A fonte caligráfica é indicado pelo comando \verb+\mathcal+\index{modo matematico@{modo matemático}!alfabeto!\verb+\mathcal{ABC}+, $\mathcal{ABC}$}.

Para algumas áreas de matemática, ainda usam a versão enfeitada de caracteres oferecido pelo comando \verb+\mathfrak+\index{modo matematico@{modo matemático}!alfabeto!\verb+\mathfrak{ABC}+, $\mathfrak{ABC}$}.

Para nome das funções, devemos usar a letra romana reta.
O \LaTeX{} dispõe de comandos prontos para maioria das funções comumente usadas, mas as vezes precisamos escrever o nome da função que não está pronto, como o \verb+sen+ que representa a função seno em português.
Como \LaTeX{} implementa nome das funções em inglês, o nome disponível para \texttt{seno} é \texttt{sin} produzido pelo comando \verb+\sin+.
Também notemos que no Brasil costuma usar \texttt{tg} para \texttt{tangente} e não o \texttt{tan}.

Para estes e outros casos, podemos especificar os nomes das funções que \LaTeX{} não dispõe, colocando dentro do comando \verb+\mathrm+\index{modo matematico@{modo matemático}!alfabeto!\verb+\mathrm{ABCdef123}+, $\mathrm{ABCdef123}$} que usa a fonte romana reta.
Veja o Exemplo~\ref{ex05:mat:fontes:basico}.

%\let\mathcal\amsmathcal
%\let\mathbb\amsmathbb
%\begin{singlespacing}
%\begin{LTXexample}[pos=b,caption={ex04-03.tex},label=ex:04-03]
\begin{ltxlisting}[caption={ex05-mat-fontes-basico.tex},label=ex05:mat:fontes:basico]
\documentclass[12pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[brazil]{babel}
\usepackage{amssymb,amsmath}
\begin{document}
Exemplo do uso de letra caligráfica e de ``negrito do quadro negro''.
\[ f \in \mathcal{C}(\mathbb{R},\mathbb{R}) \]

Exemplo da letra romana maiúscula enfeitada $\mathfrak{R}$.

Exemplo do nome das funções
\[ \forall \theta \in \mathbb{R}, \cos^2\theta + \mathrm{sen}^2\theta = 1
\]

Outro exemplo: $\mathrm{tg}\theta = \frac{\mathrm{sen}\theta}{\cos\theta}$.

\[
\mathop{\mathrm{arg\,min}}_x f(x) = \{x : f(x) = \min_{x'} f(x')\}
\]
\end{document}
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}
%\let\mathcal\orimathcal
%\let\mathbb\orimathbb
Se precisar deixar algum trecho da fórmula em negrito, poderá usar o comando \verb+\bm+ do pacote \texttt{bm}\index{bm}.

Note que no \texttt{argmin}, o $x$ será colocado embaixo e não como índice. Para que o que foi colocado como índice fique embaixo, usa-se o comando \verb+\mathop+\index{modo matematico@{modo matemático}!basico@{básico}!\verb+\mathop+}.
O comando \verb+\,+ usado no meio de \texttt{argmin} é um comando de espaçamento usado na fórmula que insere pequeno espaço. Mais sobre espaçamentos no modo matemático, veja a Seção~\ref{sec:medidas:unidade} e Seção~\ref{sec:medidas} do Caítulo~\ref{chap:medidas:contadores}.

Em geral, costuma definir comandos para nome das funções no \texttt{preamble} do documento para facilitar a digitação.
A definição de comandos e ambientes serão estudados na Seção~\ref{sec:comandos} do Capítulo~\ref{chap:novo:comando}.

Os comandos para nome das funções pré-definidas estão na Seção~\ref{sec:fonte:matematica} do Capítulo~\ref{chap:fontes}.
%A seguir, alguns nome das funções pré-definidos.
%\verb+\arccos+, \verb+\cos+, \verb+\csc+, \verb+\exp+, \verb+\ker+, \verb+\limsup+, \verb+\min+, \verb+\sinh+, \verb+\arcsin+, \verb+\cosh+, \verb+\deg+, \verb+\gcd+, \verb+\lg+, \verb+\ln+, \verb+\Pr+, \verb+\sup+, \verb+\arctan+, \verb+\cot+, \verb+\det+, \verb+\hom+, \verb+\lim+, \verb+\log+, \verb+\sec+, \verb+\tan+, \verb+\arg+, \verb+\coth+, \verb+\dim+, \verb+\inf+, \verb+\liminf+, \verb+\max+, \verb+\sin+, \verb+\tanh+.

\section{Texto, função por partes e matrizes}
Para inserir texto nas fórmulas, usa-se o comando \verb+\text+\index{modo matematico@{modo matemático}!costrucao@{construção}!\verb+\text+} do pacote \texttt{amsmath}.
Evite de usar o \verb+\mbox+\index{mbox@\verb+\mbox+} para este propósito.

Para ilustrar, vamos usar o ambiente \texttt{cases}\index{modo matematico@{modo matemático}!ams!cases} usado para definir funções por partes, no Exemplo~\ref{ex05:mat:text}.

%\begin{singlespacing}
%\begin{LTXexample}[pos=b,caption={ex04-03.tex, parte b},label=ex:04-03:b]
\begin{ltxlisting}[caption={ex05-mat-text.tex},label=ex05:mat:text]
\[
|x| = \begin{cases}
-x, & \text{ se } x < 0 \\
x, & \text{ caso contrário}\\
\end{cases}
\]
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}

O caractere ``\&''\index{\&} indica o ponto de alinhamento e \verb+\\+\index{\textbackslash\textbackslash} indica a mudança de linha.

O pacote \texttt{amsmath} dispõe de ambiente para produzir matrizes\index{modo matematico@{modo matemático}!matriz}.
O ambiente \texttt{matrix}\index{modo matematico@{modo matemático}!ams!matrix} produz matriz sem o delimitador, \texttt{pmatrix}\index{modo matematico@{modo matemático}!ams!pmatrix} é delimitado pelos parenteses\index{matriz!delimitador!parenteses}, \texttt{bmatrix}\index{modo matematico@{modo matemático}!ams!bmatrix} é delimitado pelos colchetes\index{modo matematico@{modo matemático}!ams!matriz delimitado por cochetes},\texttt{Bmatrix}\index{modo matematico@{modo matemático}!ams!Bmatrix} é delimitado pelas chaves\index{modo matematico@{modo matemático}!ams!matriz delimitado por chaves}, \texttt{vmatrix}\index{modo matematico@{modo matemático}!ams!vmatrix} é delimitado pelas retas verticais\index{modo matematico@{modo matemático}!ams!matriz valor absoluto} e \texttt{Vmatrix}\index{modo matematico@{modo matemático}!ams!Vmatrix}  é delimitado pelas retas verticais duplas\index{modo matematico@{modo matemático}!ams!matriz norma}.
Eles estão ilustradas no Exemplo~\ref{ex05:matriz}.
%\begin{singlespacing}
%\begin{LTXexample}[pos=b,caption={ex04-04.tex},label=ex:04-04]
\begin{ltxlisting}[caption={ex05-matriz.tex},label=ex05:matriz]
\[
 \begin{pmatrix}
  1 & 2 & 3 \\
  2 & 3 & 4 \\
  3 & 4 & 5
 \end{pmatrix},
 \begin{bmatrix}
  1 & 2 & 3 \\
  2 & 3 & 4 \\
  3 & 4 & 5
 \end{bmatrix},
 \begin{vmatrix}
  1 & 2 & 3 \\
  2 & 3 & 4 \\
  3 & 4 & 5
 \end{vmatrix},
 \begin{Vmatrix}
  1 & 2 & 3 \\
  2 & 3 & 4 \\
  3 & 4 & 5
 \end{Vmatrix}
\]
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}

\section[Delimitadores, chaves e integrais]{Delimitadores auto ajustáveis, chaves embaixo e integrais}

Existem delimitadores auto ajustáveis que aumenta conforme o seu conteúdo aumenta de altura.
Para usar ele, use \verb+\left+\index{modo matematico@{modo matemático}!delimitador!\verb+\left+} antes do delimitador esquerdo (tais como %
``(''\index{modo matematico@{modo matemático}!delimitador!$($}, %
``[''\index{modo matematico@{modo matemático}!delimitador!$[$}, %
``\verb\+\{+''\index{modo matematico@{modo matemático}!delimitador!chaveaberta@{\textbackslash\curlyopensymbforindex,$\curlyopensymbforindex$}},%
``|''\index{modo matematico@{modo matemático}!delimitador!$\backslash\vert$,$\vert$}, %
``\verb+\|+''\index{modo matematico@{modo matemático}!delimitador!$\backslash\Vert$,$\Vert$}, %
``\verb+\langle+''\index{modo matematico@{modo matemático}!delimitador!\verb+\langle+,$\langle$}, %
``\verb+\lfloor+''\index{modo matematico@{modo matemático}!delimitador!\verb+\lfloor+,$\lfloor$}, %
``\verb+\lceil+''\index{modo matematico@{modo matemático}!delimitador!\verb+\lceil+,$\lceil$})%
e use \verb+\left+\index{modo matematico@{modo matemático}!delimitador!\verb+\right+} antes do delimitador direito (tais como %
``)''\index{modo matematico@{modo matemático}!delimitador!$)$}, %
``]''\index{modo matematico@{modo matemático}!delimitador!$]$}, %
``\verb\+\}+''\index{modo matematico@{modo matemático}!delimitador!chavefechada@{\textbackslash\curlyclosesymbforindex,$\curlyclosesymbforindex$}},%
``|''\index{modo matematico@{modo matemático}!delimitador!$\backslash\vert$,$\vert$}, %
``\verb+\|+''\index{modo matematico@{modo matemático}!delimitador!$\backslash\Vert$,$\Vert$}, %
``\verb+\rangle+''\index{modo matematico@{modo matemático}!delimitador!\verb+\rangle+,$\rangle$}, %
``\verb+\rfloor+''\index{modo matematico@{modo matemático}!delimitador!\verb+\rfloor+,$\rfloor$}, %
``\verb+\rceil+''\index{modo matematico@{modo matemático}!delimitador!\verb+\rceil+,$\rceil$}).
Para colocar delimitador somente em um dos lados, ``.''\index{modo matematico@{modo matemático}!delimitador!\verb+\left.+}\index{modo matematico@{modo matemático}!delimitador!\verb+\right.+} é usado para indicar delimitador vazio (quando tem somente em um dos lados, outro lado seria ``.'').
Cuidado para não usar \verb+||+ para barra vertical dupla.
Veja o Exemplo~\ref{ex05:delimitador}.

%\begin{singlespacing}
%\begin{LTXexample}[pos=b,caption={ex02-01.tex, parte c},label=ex:02-01:c]
\begin{ltxlisting}[caption={ex05-delimitador.tex},label=ex05:delimitador]
\[ \left\|\frac{\frac{1}{x}}{\sqrt[3]{x^2+1}} \right\| \]
\[\left\{x \in [0,1) : \frac{x+1}{x-1} < 0 \right\} \]
\[ 2\left[1+\frac{\left(1+\frac{1}{5}\right)^2}{2} \right]+5 \]
\[ \left. \frac{x^2}{x+1}\right|_{x=1} = \frac{1}{2} \]
\[ \left\langle f, g \right\rangle = \int_b^a f(x)g(x)dx \]
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}

Para casos em que delimitadores auto ajustáveis não funcionam como esperado, poderá indicar o tamanho manualmente, colocando a especificação do tamanho antes do delimitador. O especificador do delimitador grande na ordem crescente são: \verb+\big+\index{modo matematico@{modo matemático}!delimitador!\verb+\big+}, \verb+\Big+\index{modo matematico@{modo matemático}!delimitador!\verb+\Big+}, \verb+\bigg+\index{modo matematico@{modo matemático}!delimitador!\verb+\bigg+} e \verb+\Bigg+\index{modo matematico@{modo matemático}!delimitador!\verb+\Bigg+}.
Veja Exemplo~\ref{ex05:delimitador:grande}.

%\begin{singlespacing}
%\begin{LTXexample}[pos=b,caption={ex02-01.tex, parte d},label=ex:02-01:d]
\begin{ltxlisting}[caption={ex05-delimitador-grande.tex},label=ex05:delimitador:grande]
\[ \bigg( \Big(x + (y - z) \Big) + w \bigg) \]

\[ \lambda \bigg( f(x+0) + \cdots f(x_n) \]
\[ + \sum_{i=0}^n x_i \bigg) \]
\end{ltxlisting}
%\end{LTXexample}
%\end{singlespacing}

A ``chave'' sobre (ou abaixo) da fórmula é colocado pelo
\verb|\overbrace|\index{modo matematico@{modo matemático}!acentuacao@{acentuação}!\verb+\overbrace{abc}^{n}+, $\overbrace{abc}^{n}$}%
e \verb|\underbrace|\index{modo matematico@{modo matemático}!acentuacao@{acentuação}!\verb+\underbrace{abc}_{n}+, $\overbrace{abc}_{n}$}%