From 9cc7e0dfb995e3ef79ac1725801e859f8e1440e7 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 30 Apr 2018 22:56:07 +0000 Subject: latex-via-exemplos (19apr18) git-svn-id: svn://tug.org/texlive/trunk@47524 c570f23f-e606-0410-a88d-b1316a301751 --- .../doc/latex/latex-via-exemplos/README.md | 52 + .../latex-via-exemplos-certificado.tex | 138 + .../latex-via-exemplos/latex-via-exemplos-fig.tex | 18 + .../latex-via-exemplos-lista-nomes.csv | 8 + .../latex-via-exemplos-oneside.pdf | Bin 0 -> 836363 bytes .../latex-via-exemplos-oneside.tex | 6 + .../latex-via-exemplos-poster.tex | 106 + .../latex-via-exemplos-slides.tex | 124 + .../latex-via-exemplos-tabela.txt | 15 + .../latex-via-exemplos/latex-via-exemplos.bib | 86 + .../latex-via-exemplos/latex-via-exemplos.pdf | Bin 0 -> 837439 bytes .../latex-via-exemplos/latex-via-exemplos.tex | 8484 ++++++++++++++++++++ Master/tlpkg/bin/tlpkg-ctan-check | 2 +- .../tlpkg/tlpsrc/collection-langportuguese.tlpsrc | 1 + Master/tlpkg/tlpsrc/latex-via-exemplos.tlpsrc | 0 15 files changed, 9039 insertions(+), 1 deletion(-) create mode 100644 Master/texmf-dist/doc/latex/latex-via-exemplos/README.md create mode 100644 Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-certificado.tex create mode 100644 Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-fig.tex create mode 100644 Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-lista-nomes.csv create mode 100644 Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-oneside.pdf create mode 100644 Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-oneside.tex create mode 100644 Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-poster.tex create mode 100644 Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-slides.tex create mode 100644 Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-tabela.txt create mode 100644 Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos.bib create mode 100644 Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos.pdf create mode 100644 Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos.tex create mode 100644 Master/tlpkg/tlpsrc/latex-via-exemplos.tlpsrc (limited to 'Master') diff --git a/Master/texmf-dist/doc/latex/latex-via-exemplos/README.md b/Master/texmf-dist/doc/latex/latex-via-exemplos/README.md new file mode 100644 index 00000000000..a75ca4894af --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-via-exemplos/README.md @@ -0,0 +1,52 @@ +LaTeX Via Exemplos +================== + +This is the LaTeX2e course written in brazilian portuguese +language. + +How to compile +-------------- +To compile, need to use XeLaTeX or LuaLaTeX. +First compile the following files, using pdflatex, xelatex, ou lualatex. + + latex-via-exemplos-fig.tex + latex-via-exemplos-poster.tex + latex-via-exemplos-slides.tex + latex-via-exemplos-certificado.tex + +The next step is to compile latex-via-exemplos.tex using XeLaTeX (or LuaLaTeX) as + + xelatex latex-via-exemplos + bibtex latex-via-exemplos + makeindex latex-via-exemplos + xelatex latex-via-exemplos + xelatex latex-via-exemplos + +The latex-via-exemplos is two sided document. + +To generate one sided version, compile latex-via-exemplos-oneside.tex as + + xelatex latex-via-exemplos-oneside + bibtex latex-via-exemplos-oneside + makeindex latex-via-exemplos-oneside + xelatex latex-via-exemplos-oneside + xelatex latex-via-exemplos-oneside + +Remark +------ +The latex-via-exemplos.tex requires japanese font in way to compile, +due to example of multilingual features of XeLaTeX/LuaLaTeX. + +It requires several packages available on CTAN, used on the examples. + +Author +------ +Sadao Massago + +DFQM-UFSCar + +License +------- +All files are distributed as GNU GPL version 2, or (at your option) any later version. + +https://opensource.org/licenses/gpl-license diff --git a/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-certificado.tex b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-certificado.tex new file mode 100644 index 00000000000..bfc03afe4c9 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-certificado.tex @@ -0,0 +1,138 @@ +\documentclass[12pt,a5paper,landscape]{article} +\usepackage[utf8]{inputenc} +\usepackage{graphicx} % para inlcuir logo +\usepackage{xcolor} % para cor +\usepackage{bookman} % Fonte bookman + +\usepackage{datatool} % para mala direta + +\usepackage[lmargin=1cm,tmargin=1cm,bmargin=1.8cm,rmargin=1.8cm]{geometry} % margins +\usepackage{fancybox} % para colocar moldura na pagina + +\usepackage{tikz} % to produce custom shadow box +% \usetikzlibrary{shadows} +% \usetikzlibrary{backgrounds} +\usetikzlibrary{calc} % para calculo de medidas +\usepackage[none]{hyphenat} % sem hifenizacao + +\sloppy % prefere underfull do que overfull + +% Parametros para sombra +\newcommand{\shadowwidth}{2pt} +\newcommand{\shadowheight}{2pt} +\newcommand{\shadowcolor}{black!30} + +\newcommand{\borderlinecolor}{black} +\newcommand{\borderlinewidth}{2pt} + +% reimplementando "shadow box" usando tikz +% pois do fancybox nao suporta cores +% Como \settowidth nao funciona bem para pagina, +% largura da caixa sera passado como parametro opcional +% (valor padrao eh \textwidth) +% \settowidth{certificatetitle}{#1} causa perda e conteudos. +% Assim, configurando pelo \textwidth +\newlength{\certificateboxwidth} +\newcommand{\certificatebox}[2][\textwidth]{% +%\settowidth{\certificateboxwidth}{#2}% +\setlength{\certificateboxwidth}{#1}% +\addtolength{\certificateboxwidth}{2\fboxsep} +\begin{tikzpicture} + % framed box + \node[draw=\borderlinecolor,line width=\borderlinewidth, rectangle] (certificate) + {\parbox{\certificateboxwidth} + {\vspace*{\fboxsep}\hspace*{\fboxsep}#2\hspace*{\fboxsep}\vspace*{\fboxsep}} + }; + % shadow + \draw[fill=\shadowcolor, draw=none] + ($(certificate.south west) + (\shadowwidth, -\shadowheight)$) + rectangle ($(certificate.south east)+(\shadowwidth,0)$) ; + \draw [fill=\shadowcolor,draw=none] + ($(certificate.south east)+(0,-\shadowheight)$) + rectangle ($(certificate.north east)+(\shadowwidth,-\shadowheight)$) ; +\end{tikzpicture} +} % \newcommamd + +\fancypage{\setlength{\fboxsep}{8pt}\certificatebox}{} + +% titlo do certificado com sombra +\newlength{\certtitlewidth} +\newcommand{\certtitle}[1]{% +\settowidth{\certtitlewidth}{#1}% +\boxput*{#1}{\parbox{\certtitlewidth}% +{\vspace*{\shadowheight}\hspace*{\shadowwidth}% +\color{\shadowcolor}#1}}% +} + +\pagestyle{empty} + +\begin{document} +\DTLsetseparator{,} % Separador de campos +\DTLsetdelimiter{"} % delimitador de celulas + +% associa lista para o arquivo CSV +% \DTLloaddb[noheader,keys={Nome,Trabalho}]{lista}{lista.csv} +\DTLloaddb{lista}{latex-via-exemplos-lista-nomes.csv} + +\DTLforeach{lista}{% processa cada item da lista +\personname=Nome,\worktitle=Trabalho}{% +% certificado + +% incluindo a imagem de fundo (marca d'agua) +% \begin{flushleft} +% \noindent +% \unitlength 0.04\textwidth +% \begin{picture}(0,0)(0,15) +% \includegraphics[width=1.0\textwidth]{fundo} +% \end{picture} +% \end{flushleft} + +% \sffamily + +% timbre +\begin{center} +%\includegraphics[width=0.1\textwidth]{logo-esquerda} +\hfill +\begin{minipage}[b]{0.6\textwidth} +\center +Universidade Federal de São Carlos \\ +Centro de Ciências Exatas e de Tecnologia \\ +Departamento de Matemática +\end{minipage} +%\hfill +%\includegraphics[width=0.1\textwidth]{logo-direita} +\hfill~ +\vfill +\end{center} + +% titulo do certificado +\begin{center} +\certtitle{\scalebox{2}{\LARGE Certificado}} +\end{center} +\vfill + +% corpo do certificado +\noindent +{\Large +Certificamos que \textit{\MakeUppercase\personname} apresentou o trabalho intitulado \textit{``\worktitle''} no \textsc{Nome do Congresso}, realizado no período de DATA, em LOCAL.} +\vfill + +\begin{flushright} +{\Large LOCAL E DATA.} +\end{flushright} +\vfill + +% campo de assinatura, etc +\begin{minipage}{0.45\textwidth} +Realiza\c{c}\~ao: ORGANIZADORES +\end{minipage} +% +\begin{minipage}{0.45\textwidth} + \centering \noindent + \underline{\hspace*{0.95\textwidth}} \\ +{\Large Comiss\~ao Organizadora} +\end{minipage} + +\newpage +} % csvreader +\end{document} diff --git a/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-fig.tex b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-fig.tex new file mode 100644 index 00000000000..479b371537f --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-fig.tex @@ -0,0 +1,18 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% latex-via-exemplos-fig: +% usado por latex-via-exemplos.tex +% ultima atualizacao: 06/03/2018 por Sadao Massago +% http:/www.dm.ufscar.br/~sadao +%------------------------------------------------------- +\documentclass[12pt,a4paper]{standalone} +%\usepackage[T1]{fontenc} +%\usepackage[utf8]{inputenc} +%\usepackage[brazil]{babel} +\usepackage{tikz} +\usetikzlibrary{patterns} +\begin{document} +\begin{tikzpicture} +\draw[pattern=north east lines] (-1,-1) rectangle(1,1); +\draw[fill=white] (0,0) circle(1); +\end{tikzpicture} +\end{document} diff --git a/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-lista-nomes.csv b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-lista-nomes.csv new file mode 100644 index 00000000000..6a2139798d4 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-lista-nomes.csv @@ -0,0 +1,8 @@ +%% LaTeX2e file `lista-nomes.csv' +%% generated by the `filecontents' environment +%% from source `latex-via-exemplos' on 2018/03/06. +%% +"Nome","Trabalho","Observacao" +"Nome 1","Trabalho 1", +"Nome 2","Trabalho 2", +"Nome 3","Trabalho 3", diff --git a/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-oneside.pdf b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-oneside.pdf new file mode 100644 index 00000000000..be022b3e94b Binary files /dev/null and b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-oneside.pdf differ diff --git a/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-oneside.tex b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-oneside.tex new file mode 100644 index 00000000000..e309a84f75a --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-oneside.tex @@ -0,0 +1,6 @@ +\documentclass[12pt,a4paper,oneside]{book} + +%\newif\iftwosidedocument +%\twosidedocumentfalse + +\input{latex-via-exemplos} \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-poster.tex b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-poster.tex new file mode 100644 index 00000000000..cd250af17b8 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-poster.tex @@ -0,0 +1,106 @@ +\documentclass[12pt]{article} +% 12pt torna 24pt apos dobrar a dimensao do documento usando jPDFTWeak ou poster +\usepackage[T1]{fontenc} % codificação da fonte em 8-bits +\usepackage[utf8]{inputenc} % acentuação direta +\usepackage[brazil]{babel} % em portugues brasileiro +\usepackage{lmodern} % Fonte Latin Modern (Computer Modern com extensao latin) +\usepackage{lipsum} % para preencher o espaco (para teste) +% acerto de margens usar metade da dimensao final +% para poster final de 100x120cm +% \usepackage[paperwidth=50cm,paperheight=60cm, margin=0.7cm,]{geometry} +% para poster final em A0 +% \usepackage[a2paper, margin=0.7cm]{geometry} +% Poster em 90cmx120cm +\usepackage{geometry} +\geometry{paperwidth=45cm,paperheight=60cm, +lmargin=0.7cm,rmargin=0.7cm,tmargin=0.7cm,bmargin=0.7cm} +\usepackage{multicol} % usar varias colunas +\usepackage{graphicx} % usar graficos +\usepackage[usenames]{xcolor} % usar cores +\usepackage{fancybox} % para molduras adicionais nas caixas + +% espacamento entre colunas +\setlength{\columnsep}{1cm} +% \setlength{\columnseprule}{1pt} % separador de colunas +% No poster, nao costuma usar a indentacao +\setlength{\parindent}{0pt} % sem indentacão + +% comando para colocar titulo customizado +%---------------------------------------- +\setlength{\fboxsep}{0pt} % bordas grudadas no conteudo +%% caixa de titulos: versao colorida. +\newcommand{\maintitlebox}[1]{\shadowbox{\colorbox{yellow}{\parbox{0.99\columnwidth}{#1}}}} +\newcommand{\titlebox}[1]{\fbox{\colorbox{yellow}{\parbox{1.0\columnwidth}{#1}}}} +%% caixa de titulos: versao monocromatica. +% \newcommand{\maintitlebox}[1]{\shadowbox{\parbox{0.99\columnwidth}{#1}}} +% \newcommand{\titlebox}[1]{\fbox{\parbox{1.0\columnwidth}{#1}}} + +% \usepackage{cmbright} % computer modern compatible sans serif font for text and math + +\renewcommand\familydefault{\sfdefault} % Usar sans serif por padrao +\pagestyle{empty} % sem enumeracao das paginas +\begin{document} +% \large % aumentar um pouco a letra (apesar de nao ser necessario) + +\maintitlebox{ +\begin{minipage}[t]{0.98\textwidth} +\begin{center} +\vspace{1pc} +\Huge +% podera acrescentar logo, usando inludegraphics +% \includegraphics[height=4pc]{logo-esquerda} +% \hfill +Poster de Teste +% \hfill +% \includegraphics[height=4pc]{logo-direita} +\end{center} +\vspace{1pc} +\end{minipage} +} % maintitlebox +\vspace{1pc} + +\begin{center} + {\huge Sadao Massago} + +\ + + {\large DM-UFSCar} (Universidade Federal de São Carlos) + + web: \texttt{http://www.dm.ufscar.br/$\sim$sadao} \\ + e-mail: \texttt{sadao@dm.ufscar.br} +\end{center} + +\vspace{2pc} +% \hrule \vspace{1pc} \hrule + +% \setlength\columnseprule{.4pt} +\begin{multicols}{3} % 2 colunas, por ter linha comprida +\section*{\titlebox{Parte 1}} +\lipsum[1-2] +\section*{\titlebox{parte 2}} +\lipsum[1-5] +\section*{\titlebox{Parte 3}} +\lipsum[1-6] +\section*{\titlebox{Parte 4}} +\lipsum[1-4] +\section*{\titlebox{Parte 5}} +\lipsum[1-7] +\section*{\titlebox{Parte 6}} +\lipsum[1-3] +\end{multicols} % 2 colunas, por ter linha comprida + +\vspace{1pc} +\doublebox{ +\begin{minipage}{0.99\textwidth} +\vspace{2pc} +\setlength\columnseprule{.5pt} + +\begin{multicols}{2} % 2 colunas +\titlebox{Observação final:} +\lipsum[3] +\end{multicols} % 2 colunas + +\vspace{1pc} +\end{minipage} +} % \doublebox{ +\end{document} \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-slides.tex b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-slides.tex new file mode 100644 index 00000000000..a91bd2941e7 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-slides.tex @@ -0,0 +1,124 @@ +\documentclass[12pt]{beamer} % para apresentacao. + +\usepackage[T1]{fontenc} % codificação da fonte em 8-bits +\usepackage[utf8]{inputenc} % acentuação direta +\usepackage[brazil]{babel} % em portugues brasileiro + +\usetheme{Warsaw} % tema (modelo) +\usecolortheme{default} % tema de cores (Esquema de cores) +% para ver como fica as combinacoes de tema e esquema de cores, +% veja o site https://hartwork.org/beamer-theme-matrix/ +% \usefonttheme[onlymath]{serif} % use serif for math +%\setbeamerfont{title}{family=\rm} % titulo em romano + +\usepackage{amssymb,amsmath} % para incrementar fórmulas +\usepackage{tikz} % para cria degrade no fundo +%\usepackage[condensed,math]{iwona} % Mudando fontes +\usepackage{lipsum} % para gerar texto, para teste + +% \usepackage{hyperref} % ja eh carregado pelo beamer +\hypersetup{% informacoes do PDF + pdftitle={Slide beamer},% + pdfauthor={Sadao Massago}, + pdfsubject={Exemplo de Slide}, + pdfkeywords={LaTeX, Slide} +} % \hypersetup + +% Informacoes para criar titulo +\title[Exemplo de Slide]{Exemplo de Slide} +\author{% + Sadao Massago\inst{1} % \and ???\inst{2} + } +\institute[Universidade Federal de São Carlos]{ + \inst{1}% + Departamento de Matemática + % \and + % \inst{2} ??? + } +\date[Março 2018]{\LaTeX{} Via Exemplos, 2018} + +% fundo em degrade +\setbeamertemplate{background canvas}{% +\begin{tikzpicture}[remember picture,overlay] +%\shade[top color=red!10,bottom color=blue!10, middle color=white!10] +\shade[top color=red!10,bottom color=blue!10] + (current page.north west) rectangle (current page.south east); +\end{tikzpicture}% +} + +\setbeamertemplate{navigation symbols}{} % desativa botao de navegacao + +\begin{document} +\frame{\titlepage} % slide de titulos +\frame{\transdissolve\tableofcontents} % slide de sumario + +\note{Em torno de 1 minuto para tópicos.} % notas + +\section{Slide e Transparências} % section será usado no sumário e similares + +\begin{frame} % slide + \frametitle{Slides de apresentação} +\begin{itemize} +\item <1->\alert<1>{Usar letras grandes} +\item <2->\alert<2>{Cor do fundo deve criar contraste com texto} +\item <3->\alert<3>{Para apresentação, contraste pode ser pela cor} +\item <4->\alert<4>{Para imprimir, contraste deve ser claro/escuro} +\end{itemize} +\only<5->{\alert<5>{Escrever pouco e falar muito}} +\end{frame} + +\begin{frame} +\frametitle{blocos} +\begin{block}{}<1-> +Este é um bloco sem título. Bloco aceita overlay. +\end{block} + +\begin{block}{Segundo bloco}<2-> +Este é umbloco com título. +\end{block} + +``bloco'' é uma ``caixa'' com ou sem título e aceita o parâmetro de \texttt{overlay}. + +\end{frame} + +\section{Ambiente \texttt{verbatim} no slide} % outra entrada de sumário + +\begin{frame}[fragile] % outro slide + \frametitle{Verbatim} + Ambiente \texttt{verbatim} e similar requer opção \texttt{fragile}. +%\only<2>{ +\begin{verbatim} +\begin{frame}[fragile] + \frametitle{...} + ... + \end{frame} +\end{verbatim} +%} +\end{frame} + +%\begin{note} % outra nota: ambiente note so funciona fora do frame Não funciona na versão 2016. Testar na versão mais recente. +\note{Sem a opção \texttt{fragile}, não pode usar o ambiente \texttt{verbatim} dentro do \texttt{frame}. + Não pode usar ``\texttt{overlay}'' no ambiente \texttt{verbatim} +} +%\end{note} + +\section{Quebra automática em frames} % mais uma entrada par asumario + +\begin{frame}[allowframebreaks] % e mais um slide +\lipsum[1-2] +\end{frame} +\note{ +Para que mude o frame automaticamente quando tornar cheio +coloque a opção \texttt{allowfreamebreaks} no frame +} + +\section{Opção plain} +\begin{frame}[plain] +\frametitle{Opção \texttt{plain}} +\lipsum[1] +\end{frame} +\note{ +Opção \texttt{plain} desativa cabeçalho e rodapé do frame para ter mais espaço. Útil para colocar figura maior, por exemplo. +} + +\end{document} \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-tabela.txt b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-tabela.txt new file mode 100644 index 00000000000..832fdea462e --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos-tabela.txt @@ -0,0 +1,15 @@ +%% LaTeX2e file `latex-via-exemplos-tabela.txt' +%% generated by the `filecontents' environment +%% from source `latex-via-exemplos' on 2018/03/02. +%% +% 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 diff --git a/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos.bib b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos.bib new file mode 100644 index 00000000000..2b106271ac1 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos.bib @@ -0,0 +1,86 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +latex-via-exemplos.bib: Referencia bibliografica +Usado por: latex-via-exemplos.tex +ultima atualizacao: 10/03/2018 por Sadao Massago +http:/www.dm.ufscar.br/~sadao +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +@string{AW="Adilson--Wesley"} +@string{TUG="{\TeX{}} User Group"} +@string{CTAN="Comprehensive {\TeX{}} Archive Network"} + + +@BOOK{book:knuth:1986, +AUTHOR ="Donald E. Knuth", +TITLE ={The {\TeX{}} Book}, +EDITION ="third", +PUBLISHER =AW, +ADDRESS ={Reading, MA}, +YEAR =1986 } + +% Referencia da 2a.edicao? +@book{book:lamport:1986, +author={Leslie Lamport}, +title="{\LaTeX{}}, A document Preparation System", +publisher=AW, +address ={Reading, MA}, +year=1986 +} + +@book{book:lamport:1994, +author={Leslie Lamport}, +title="{\LaTeX{}}, A document Preparation System, second edition", +publisher=AW, +address ={Reading, MA}, +year=1994 +} + +% Precisa da referencia da 2a. edicao +@book{book:goossens:1997, +author={Michel Goossens and Frank Mittelbach and Alexander Samarin}, +title="The {\LaTeX{}} Companion", +publisher=AW, +address ={Reading, MA}, +year=1997 +} + +@book{book:goossens:2004, +author={Michel Goossens and Frank Mittelbach and Alexander Samarin}, +title="The {\LaTeX{}} Companion (second edition)", +publisher=AW, +address ={Reading, MA}, +year=2004 +} + +@misc{misc:indiantug:2000, +author={Tutorial Team}, +title="Online Tutorials on {\LaTeX{}}", +publisher="Indian " # TUG, +note = "URL: {\url{http://www.tug.org/tutorials/tugindia/}}", +year=2000 +} + +% atualizar o ano +@book{book:oeticker:2018, +author={Tobians Oeticker and Hubert Partl and Irene Hyna and Elisabeth Schlegl}, +title="The Not So Short Introduction to {\LaTeXe{}}", +publisher=CTAN, +note = "URL: {\url{https://ctan.org/tex-archive/info/lshort/}}", +year=2018 +} + +@book{book:wikibook:latex, +author={wikibook}, +title={{\LaTeX}}, +publisher={wikibook}, +note = "URL: {\url{https://en.wikibooks.org/wiki/LaTeX}}", +url = {\url{https://ctan.org/tex-archive/info/lshort}}, +year=2018 +} + +@book{book:tikz:tantau, +author={Till Tantau}, +title={TikZ{\&}PGF Manual}, +note={Download from \url{http://www.ctan.org/tex-archive/graphics/pgf/base/doc/generic/pgf/pgfmanual.pdf}}, +url={\url{http://www.ctan.org/tex-archive/graphics/pgf/base/doc/generic/pgf/pgfmanual.pdf}} +} +%%%%%%%%%% fim do arquivo %%%%%%%%%%% diff --git a/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos.pdf b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos.pdf new file mode 100644 index 00000000000..674ed0d6b00 Binary files /dev/null and b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos.pdf differ diff --git a/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos.tex b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos.tex new file mode 100644 index 00000000000..fb880ca7df0 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-via-exemplos/latex-via-exemplos.tex @@ -0,0 +1,8484 @@ +% Usar XeLaTeX ou LuaLaTeX +% acento nao sobrevive no arquivo temporario de showexpl +% Use diretamente do arquivo externo, ou use XeLaTeX/LuaLaTeX +% +\makeatletter +\@ifclassloaded{book}{}{ + \documentclass[12pt,a4paper,twoside,openright]{book} + % \newif\iftwosidedocument + % \twosidedocumenttrue +} +\makeatother + +\usepackage{iftex} % detectar motor TeX usado + +% testting TeX engine +\ifPDFTeX + \PackageError{\jobname}{Precisa de XeLaTeX ou LuaLaTeX}{Use XeLaTeX ou LuaLaTeX} +\fi + +\usepackage[english,brazil]{babel} + +% Font selection +\usepackage{fontspec} +\defaultfontfeatures{Ligatures=TeX} + +% iffont not works on LuaLaTeX +\usepackage{iffont} + +%\makeatletter +% \renewcommand{\@iffont@firstfont}{MS Mincho} +%\makeatother + +\ifLuaTeX % patch + % \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 + +\settofirstfound{\jafont}{Noto Serif CJK JP, MS Mincho, TakaoMincho, IPAexMincho, IPAMincho, Hiragino Mincho Pro} +% \settofirstfound{\jafont}{NotoSansCJK-Regular.ttc, msmincho.ttf, takaomincho.ttf, ipaexm.ttf, ipam.ttf} +\settofirstfound{\jagothic}{Noto Sans CJK JP, MS Gothic, TakaoGothic, IPAexGothic, IPAGothic, Hiragino Maru Gothic Pro} + +% % 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 +% Se for XeLaTeX, usar funcao do pacote iffont +% Se for LuaLaTeX, precisa atualizar o fontspec +\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 + +\IfFontExistsTF{\jafont}{}{\PackageError{\jobname}{Fonte japonês Mincho 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}} + +\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{xunicode} % textcomp equiv. Old and not works on lualatex (March, 2018) +\usepackage{unicode-math} % amssymb,amsmath equiv. +\ifLuaTeX + \usepackage{lualatex-math} +\fi + +% Other packages +\usepackage{xcolor,tikz} % graphics + +% margins +\usepackage[margin=2cm]{geometry} + +\usepackage{hyperref} % link +\hypersetup{ + unicode=true, + bookmarks=true +} +% \providecommand{\url}[1]{\texttt{#1}} + +\usepackage{lipsum} + + +\usepackage[stretch=10]{microtype} % microtipografia: funciona no PDFLaTeX e LuaLaTeX (parcialment 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} + +\usepackage{makeidx} +\makeindex + +\usepackage[nottoc]{tocbibind} + + +\usepackage{amsthm} + +\usepackage{multicol} + +\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{verbatim} % For verbatim +\usepackage{fancyvrb} % for VerbatimOut + +\usepackage{keyval} + +\usepackage{showexpl} % ele carrega listings + +%%% 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 orovas +\usepackage{tasks} % para lista de exercicios e provas +\usepackage{answers} % respostas +\usepackage{siunitx} % para unidade internacional. + +% 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} + +% 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 +%======================================================== +% 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@xt@1.8em{\hss\@makefnmark}#1} + \hb@xt@0.45em{\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 +} + +% setup showexpl +\lstset{explpreset={ + pos=b, +% 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% + }, + 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 +} + + +% 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 + \let\KV@errx@ORI\KV@errx % Save original error handling + \let\KV@errx\@gobble % Ignore unknown keys + \expandafter\ltx@listing@setkeys\expandafter{#1} +% \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 +}{\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 + +% From +% https://wiki.lyx.org/LyX/Logotype +\@ifpackageloaded{hyperref} +{\providecommand{\LyX}{% + \texorpdfstring{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}{LyX}}}% +{\providecommand{\LyX}{% +L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}} + + +% 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}% +\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 +\@ifpackageloaded{hyperref} +{ +\DeclareRobustCommand{\XeLaTeX}{% + \texorpdfstring{X\kern-.1667em\lower.7ex\hbox{\rotatebox[origin=c]{180}{E}}\kern-.125em\LaTeX}{XeLaTeX}}}% +{\DeclareRobustCommand{\XeLaTeX}{% + X\kern-.1667em\lower.7ex\hbox{\rotatebox[origin=c]{180}{E}}\kern-.125em\LaTeX}} +\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}$}} + + +% 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}{\acwgapcirclearrow} % from unicode-math +% unicode version not appear on version 2016. +% Need to tested on newer version + +\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 + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% providenciando simbolos reservados para index, no indice remissivo +% +\newcommand{\abssymbforindex}{|} +%\index{delimitador!modulo@\abssymbforindex} +\newcommand{\normsymbforindex}{\textbackslash |} +%\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\{} +%\index{delimitador!chaveaberta@\curlyopensymbforindex} +\newcommand{\curlyclosesymbforindex}{\textbackslash\}} +%\index{delimitador!chavefechada@\curlyclosesymbforindex} +\newcommand{\arrobasymbforindex}{$@$} +\newcommand{\exclsymbforindex}{$!$} + +%%%%%%%%%%%%%%%%%%%%% +% 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/})} } +% janeiro a abril de 2018 +% Primeira versão publica (0.5) em abril de 2018. +\date{Versão 0.5, abril de 2018} + +%%%%%%%%%%%%%%%%%%%%%%% +% Docuemt start here +\pagestyle{empty} +\begin{document} + +\maketitle + +\thispagestyle{empty} + +Copyright \textcopyright 2018 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 da GNU como publicado pela Free Software Foundation; versão 2 da Licença, ou (se for sua opção) qualquer versão posterior. +Veja \url{https://opensource.org/licenses/gpl-license}. + +%\ +% +%A versão atual deste documento está disponível em +%\href{http://www.ctan.org/tex-archive/info/latex-via-exemplos}{CTAN://info/latex-via-exemplos} + +\clearpage\thispagestyle{empty}\cleardoublepage +\frontmatter + +\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 suas páginas. + +Este documento está dividido em 17 capítulos mais os apêndices. + +Do Capítulo~1 até Capítulo~13 utilizam somente os pacotes da \texttt{base} e de \texttt{required} na qual qualquer sistema \LaTeX{} devem conter. +Do capítulo 14 a 17 utilizam os pacotes que não sejam 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 explora várias possibilidades dentro dos pacotes de \texttt{base} e \texttt{required} que não foram discutidos nos capítulos anteriores. + +Capítulo~14 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. + +Capítulo~15 discute o pacote \texttt{xcolor} especial para cores, e \texttt{tikz} espacial para criar ilustrações. + +Capítulo~16 ilustra a criação de \texttt{poster} e \texttt{slides} de apresentação. + +Capítulo~17 apresenta o uso de \XeLaTeX{} e Lua\LaTeX, considerado a próxima geração de \LaTeX. + +Apêndice A é sobre como escrever um pacote (arquivo de estilos). + +Apêndice B 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 C trata da mala direta e criação do caderno de resumos, interessantes para organizadores de eventos. + +Apêndice D trata de pacotes úteis para elaborar provas e lista de exercícios. + +Apêndice E trata de pacotes interessantes para desenvolver projetos tal como escrever um livro ou similar. + +\ + +Sorocaba, abril de 2018. + +\ + +Sadao Massago \verb++ + +%\pagestyle{headings} + + +\clearpage\thispagestyle{empty}\cleardoublepage + +\pagestyle{fancy} + +\tableofcontents + +\clearpage\thispagestyle{empty}\cleardoublepage +\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 2008, o recurso de sincronização do documento fonte com o PDF tornou fácil e 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\LaTeX{} permite usar fonte do sistema, assim como estender a funcionalidade com a linguagem 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 PDF como o código fonte. +Para quem quer a funcionalidade mais próxima dos aplicativos de escritórios que vê como 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 PDF (posicionar 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 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 do comando \verb+\documentclass+ é 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 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 coberta de 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{}+ e \verb+\end{}+\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 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 PDF, deverá processar 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, corrige os erros e compila de novo, até sumir com todos erros. + +Quando compila o documento, o \texttt{TeXMaker} posicionará na página do PDF, correspondente aonde fica o cursor no editor de texto. Para localizar qual código gerou uma determinada parte de PDF, clique no botão direito sobre parte do 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 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: +\'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 espciais. + +Note que as letras com a acentuação direta\index{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{acentuação!modo TeX} que pode ser usados em alguns casos especiais, tais como dentro do arquivo de referências bibliográficas, ou arquivo 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}. +Note que 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{\%}, 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 de espaço\index{espaço!não quebrável}. +Por exemplo, no caso de \verb+página~1+, não acontece de página ficar no final de uma linha e \verb+1+ ficar no começo da 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 lembra 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 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 em \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}. +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{potencia@{potência}} e ``\_''\index{\_@\verb+_+} indica o índice\index{indice@{índice}}. +Outros comandos utilizados foram, \verb+\frac+\index{frac@\verb+\frac+} que produz frações\index{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{+-@$\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 o botão do painel lateral esquerdo 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{} está em \url{http://tug.ctan.org/info/symbols/comprehensive/symbols-a4.pdf}. + +%\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: $\Alpha, \Beta, \Gamma, \Lambda, \Pi$. + +Alguns símbolos: +$\le, \ge, \neq, \in, \notin, \exists, \nexists, \to, \infty, \forall$. +\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{fórmula!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 $\displaystyle \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{fórmula!textstyle} que é usado de forma similar a \verb+\displaystyle+. +Nesta família de comandos, também existe o comando \verb+\scriptstyle+\index{fórmula!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 guardado e usado no outro lugar, denominado de 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}, armazenando a enumeração onde produz 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} ilusta o uso de 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á 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 referencias, o que facilitaria 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ático no documento PDF. + +\clearpage\thispagestyle{empty}\cleardoublepage +\chapter{Estrutura do 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 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{}+\index{footnote} que colocará marca de rodapé no local e \verb++ 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 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 enfatizada. +%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 delas é listas. +%Veremos alguns deles. + +%Vamos começar pelas listas. + +Existem três tipos básicos de listas\index{lista} que são especificados 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 Exeplo~\ref{ex04:listas} ilustra algumas 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{ltxlisting}[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{ltxlisting} +%\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@\abssymbforindex}, 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} +\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 ou não estar especificado 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. + +Se precisar traçar linhas duplas ou similares na tabela, podemos usar o pacote \texttt{hhline}\index{hhline} que não entraremos em detalhes. + +Para alinhar os decimais, usamos o pacote \texttt{dcolumn}\index{dcolum} +que define um novo especificador de colunas na tabela, especificado por \texttt{D\{\}\{\}\{\}}. + +\texttt{} é a especificação de pontos decimais usado no arquivo TeX (como escreve no TeX), +\texttt{} é o decimal utilizado para documento de saída PDF, e o \texttt{} é o número de casas decimais a serem considerados (casas decimais excedentes serão truncados). +Caso especificação do número de casas decimais for negativo, qualquer número de casas decimais é aceito sem ser truncado (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{}'' que é interpretado como \texttt{D\{.\}\{\cdot\}\{\}} e, ``.'' e ``,'' que serão interpretados como sendo \texttt{D\{.\}\{.\}\{-1\}} e \texttt{D\{,\}\{,\}\{2\}} respectivamente. + +Note que podemos modificar os comandos anterior 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} 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}. + +Note que \texttt{hhline} que produz linhas duplas e similares 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 alinhas 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 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 mo modo \TeX{} que não pode ser usado 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 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 código fonte de programas\index{código fonte!programma} ou similar, usa-se o ambiente \texttt{verbatim}\index{verbatimm}. +Colocar texto de jeito que está (cópia \texttt{verbatim}) pode ser feito pelo ambiente \texttt{verbatim} e \texttt{verbatim*}\index{verbatim*}, o que é muito usado para colocar trecho do código de programas. +Sem o ``*'', coloca espaço como espaço e com o ``*'', coloca 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 o 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}. 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 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 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} 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 está 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} +Aqui, 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 de 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{mathbb@\verb+\mathbb+}. + +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{mathcal@\verb+\mathcal+}. + +Para algumas áreas de matemática, ainda usam a versão enfeitada de caracteres oferecido pelo comando \verb+\mathfrak+\index{mathfrak@\verb+\mathfrak+}. + +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{mathrm@\verb+\mathrm+} 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}}{\cos\theta}$. + +\[ +\mathop{\mathrm{argmin}}_x f(x) = \{x : f(x) = \min_{x'} f(x')\} +\] +\end{document} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} +%\let\mathcal\orimathcal +%\let\mathbb\orimathbb + +Note no \texttt{argmin}, o $x$ será colocado embaixo e não como índice. Para que o que foi colocado como índice ficar embaixo, usa-se o comando \verb+\mathop+\index{mathop@\verb+\mathop+}. + +Em geral, costuma definir comando 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{text@\verb+\text+}. +Evite de usar o \verb+\mbox+\index{mbox@\verb+\mbox+} para este propósito. + +Para ilustrar, vamos usar o ambiente \texttt{cases}\index{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{matriz}. +O ambiente \texttt{matrix}\index{matrix} produz matriz sem o delimitador, \texttt{pmatrix}\index{pmatrix} é delimitado pelos parenteses\index{matriz!delimitador!parenteses}, \texttt{bmatrix}\index{bmatrix} é delimitado pelos colchetes\index{matriz!delimitador!cochetes},\texttt{Bmatrix}\index{Bmatrix} é delimitado pelas chaves\index{matriz!delimitador!chaves}, \texttt{vmatrix}\index{vmatrix} é delimitado pelas retas verticais\index{matriz!delimitador!vertical} e \texttt{Vmatrix}\index{Vmatrix} é delimitado pelas retas verticais duplas\index{matriz!delimitador!verticais duplas}. +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 aumente de altura. +Para usar ele, use \verb+\left+\index{left@\verb+\left+} antes do delimitador esquerdo (``(''\index{delimitador!parenteaberta@$($}, ``[''\index{delimitador!colcheteaberta@[}, ``\verb\+\{+''\index{delimitador!chaveaberta@\curlyopensymbforindex}, + ``|''\index{delimitador!modulo@\abssymbforindex}, ``\verb+\|+''\index{delimitador!norma@\normsymbforindex}, + ``\verb+\langle+''\index{delimitador!langle@\verb+\lanagle+}, ``\verb+\lfloor+''\index{delimitador!lfloor@\verb+\lfloor+}, +``\verb+\lceil+''\index{delimitador!lceil@\verb+\lceil+}, ``\verb+\ulcorner+''\index{delimitador!ulcorner@\verb+\ulcorner+} + e ``.''\index{delimitador!.}) e \verb+\right+\index{delimitador!right@\verb+\right+} antes do delimitador direito (``)''\index{delimitador!parentefechada@$)$}, ``]''\index{delimitador!colchetefechada@]}, ``\verb+\}+\index{delimitador!chavefechada@\curlyclosesymbforindex}, + ``|''\index{delimitador!modulo@\abssymbforindex}, ``\verb+\|+''\index{delimitador!norma@\normsymbforindex}, + ``\verb+\rangle+''\index{delimitador!rangle@\verb+\rangle+}, ``\verb+\rfloor+''\index{rfloor@\verb+\rfloor+}, +``\verb+\rceil+''\index{delimitador!rceil@\verb+\rceil+}, ``\verb+\urcorner+''\index{delimitador!urcorner@\verb+\urcorner+} e ``.''\index{delimitador!.}), onde ``.''\index{left.@\verb+\left.+}\index{right.@\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{big@\verb+\big+}, \verb+\Big+\index{Big@\verb+\Big+}, \verb+\bigg+\index{bigg@\verb+\bigg+} e \verb+\Bigg+\index{Bigg@\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{overbrace@\verb+\overbrace+} e \verb|\underbrace|\index{underbrace@\verb+\underbrace+}. +Veja Exemplo~\ref{ex05:bracos}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex02-01.tex, parte e},label=ex:02-01:e] +\begin{ltxlisting}[caption={ex05-bracos.tex},label=ex05:bracos] +\[ \overbrace{1+1+\cdots+1}^{n-\text{vezes }} = n \] +\[ \underbrace{k+k+\cdots+k}_{n-\text{vezes}} = nk \] +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +Alguns casos de integrais múltiplas estão ilustrados no Exemplo~\ref{ex05:integrais}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex04-04.tex},label=ex:04-05] +\begin{ltxlisting}[caption={ex05-integrais.tex},label=ex05:integrais] +Integrais múltiplas +\[ +\int_a^b f(x)dx\; \iint_R f(x.y)dxdy \; \iiint_B f(x,y,z)dxdydz \] +\[\idotsint f(x_1,\ldots,x_n)dx_1\cdots dx_n \] + +Integral de linha $\oint f(x)dx$. +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +Note que \verb+cdots+\index{cdots@\verb+\cdots+} produz três pontos no meio, enquanto que \verb+\ldots+\index{ldots@\verb+\ldots+} produz três pontos embaixo. + +\section{Quebrando fórmulas em várias linhas} +Para quebrar uma equação em mais de uma linha, podemos usar o ambiente \verb+split+\index{split}. + +Para criar alinhamento na equação quebrada, usa-se +\verb|aligned|\index{aligned} em vez de \verb|split| e insere o \& nos pontos de alinhamento, como no Exemplo~\ref{ex05:split}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex04-04.tex, parte b},label=ex:04-04:b] +\begin{ltxlisting}[caption={ex05-split.tex},label=ex05:split] +\[ +\begin{split} +2x+y=3 \\ +x-y=1+a +\end{split} +\] + +\begin{equation} +\begin{aligned} +2x+y&=3 \\ +x-y&=1+a +\end{aligned} +\end{equation} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +Podemos tentar usar o ambiente \texttt{cases} para definir sistema de equações como no Exemplo~\ref{ex05:cases:aligned}, +mas isto não efetua o alinhamento (na posição de igualdade). +Não podemos usar o \&, pois o alinhamento seria efetuado de forma próprio para colocar condição da expressão e não a equação. +Assim, é aconselhável usar o \verb+aligned+ em vez de \texttt{cases}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex04-04.tex, parte c},label=ex:04-04:c] +\begin{ltxlisting}[caption={ex05-cases-aligned.tex},label=ex05:cases:aligned] +\begin{equation} + \begin{cases} + 2x+y=1 \\ + x-y=1+a + \end{cases} +\end{equation} +\begin{equation} + \left\{ \begin{aligned} + 2x+y&=1 \\ + x-y&=1+a + \end{aligned} \right. +\end{equation} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +Existem diversos ambientes estilo \texttt{equations}. +Vamos ver algumas delas: + +O ambiente \texttt{gather}\index{gather} produz várias equações, todas centralizadas. +Para inibir enumeração em algumas delas, coloque o \verb|\nonumber|\index{nonumber@\verb+\nonumber+} na equação que deseja remover a enumeração (antes da quebra de linhas). Veja o Exemplo~\ref{ex05:gather} + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex04-04.tex, parte d},label=ex:04-04:d] +\begin{ltxlisting}[caption={ex05-gather.tex},label=ex05:gather] +\begin{gather} +x+y+z=1 \\ +x-y+z=2 \\ +x+y=0 +\end{gather} +\begin{gather} +x+y+z=1 \\ +x-y+z=2 \nonumber \\ +x+y=0 +\end{gather} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +Para equações em várias linhas, com pontos de alinhamento, +usa-se o \texttt{align}\index{align} que pode inibir enumeração +de algumas equações como em \texttt{gather}. + +Quando escreve uma expressão grande quebrado em várias linhas, +as vezes é legal tabular cada linha para direita. +Este efeito pode ser obtido pelo \verb|multline|\index{multiline}, como do Exemplo~\ref{ex05:multiline}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex04-04.tex, parte e},label=ex:04-04:e] +\begin{ltxlisting}[caption={ex05-multiline.tex},label=ex05:multiline] +\begin{align} +x+y+z&=1 \\ +x-y+z&=2 \nonumber \\ +x+y&=0 +\end{align} +\begin{multline} +Ax+Ay+Az= + a_{11}x_1+\cdots +a_{1n}x_n+\cdots +\cdots +a_{n1}x_1+\cdots a_{nn}x_n \\ + a_{11}y_1+\cdots +a_{1n}y_n+\cdots +\cdots +a_{n1}y_1+\cdots a_{nn}y_n \\ + a_{11}z_1+\cdots +a_{1n}z_n+\cdots +\cdots +a_{n1}z_1+\cdots a_{nn}z_n +\end{multline} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +Para mais ambientes deste estilo, consulte o manual de AMS \LaTeX. \cite[Cap. 8]{book:goossens:2004} explica bem os ambientes e comandos matemáticos do AMS (que está sendo discutido parcialmente neste capítulo). + +Note que, todos ambientes do estilo \texttt{equation} +(\texttt{equation}, \texttt{gather}, \texttt{align}, \texttt{multline}, etc) +apresentam a versão com *\index{equation*}\index{gather*}\index{align*}\index{multiline*} na qual remove toda enumeração (versão * equivale +a colocar \verb|\nonumber| em todas equações). +Veja Exemmplo~\ref{ex05:align:star}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex04-04.tex, parte f},label=ex:04-04:f] +\begin{ltxlisting}[caption={ex05-align-star.tex},label=ex05:align:star] +\begin{align*} +x+y+z&=1 \\ +x-y+z&=2 \\ +x+y&=0 +\end{align*} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +\section{Nome sobre setas e delimitador empilhados} + +Para colocar nome nas setas\index{setas!com nome}, usa-se o \verb+\stackrel+\index{stackrel@\verb+\stackrel+}. + +Para colocar limitante de soma, produto, etc em duas linhas\index{limitante!duas linhas}, usa-se o \verb+\substack+\index{substack@\verb+\substack+}. + + +Para colocar embaixo, poderá usar o \verb+\underset+\index{underset@\verb+\underset+}. + +Simplesmente empilhar um sobre outro, usa-se o \verb+\atop+\index{atop!\verb+\atop+}. + +Veja Exemplo~\ref{ex05:stackrel}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex04-05.tex, parte b},label=ex:04-05:b] +\begin{ltxlisting}[caption={ex05-stackrel.tex},label=ex05:stackrel] +\[ X \stackrel{f}{\to} Y\] +\[ f : \underset{x}{X} \underset{\mapsto}{\to} \underset{f(x)}{Y} \] +\[ L_i(x)=\prod_{\substack{j=0 \\ i\ne j}} \frac{x-x_j}{x_i-x_j} \] +\[ X \atop Y \] +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +Binomial de Newton pode ser produzido por \verb+binom+\index{binom@\verb+\binom+} como no Exemplo~\ref{ex05:binom}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex04-05.tex, parte c},label=ex:04-05:c] +\begin{ltxlisting}[caption={ex05-binom.tex, parte c},label=ex05:binom] +Regra de Pascal: +\[ \binom{n}{k} = \binom{n-1}{k} + \binom{n-1}{k-1} \] +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +\section{Subequações} + +Podemos usar subequações\index{subequação} no \LaTeX{} como no Exemplo~\ref{ex05:subequacao}. + +%\setcounter{lstorichapter}{\value{chapter}} +%%\let\orilabel\label +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex04-05.tex, parde d},label=ex:04-05:d,preset={\let\label\orilabel,\setcounter{chapter}{1}}] +\begin{ltxlisting}[caption={ex05-subequacao.tex},label=ex05:subequacao] +\begin{subequations} +\begin{equation}\label{eq:regiao:a} + x^2+y^2 \le 1 +\end{equation} +\begin{equation}\label{eq:regiao:b} + y \ge 0 +\end{equation} +\end{subequations} +As equações \ref{eq:regiao:a} e \ref{eq:regiao:b} determinam a parte superior do disco. +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} +%\setcounter{chapter}{\value{lstorichapter}} + +\section{Acentuação no modo matemático} + +Na matemática, usam acentuação\index{acentuação!modo matemático} para produzir nomes relacionados ao original tais como $\hat f$ e $\bar f$ relacionados a $f$. +Tais acentuações difere do modo texto. +Alguns desses acentuações comumente encontrados na matemática são: acento circunflexo, til, ponto, seta e barra. +Além das acentuações, tem também o caso de colorar expoentes como em $f'$ e $f^\ast$ que são relacionados com $f$. +O \LaTeX{} produzem estes e outros acentos e símbolos usados como expoentes especiais na matemática. + +\begin{tabular}{cc} +comando & exemplo \\ +\verb+\hat+ & $\hat{a}$ \\ +\verb+\tilde+ & $\tilde{a}$ \\ +\verb+\dot+ & $\dot{a}$ \\ +\verb+\ddot+ & $\ddot{a}$ \\ +\verb+\dddot+ & $\dddot{a}$ \\ +\verb+\ddddot+ & $\ddddot{a}$ \\ +\verb+\bar+ & $\bar{a}$ \\ +\verb+\vec+ & $\vec{a}$ \\ +\verb+\grave+ & $\grave{a}$ \\ +\verb+\acute+ & $\acute{a}$ \\ +\verb+\breve+ & $\breve{a}$ \\ +\verb+\check+ & $\check{a}$ \\ +\verb+\overset{\circ}{}+ & $\overset{\circ}{a}$ \\ +\end{tabular} + +Alguns deles, como barra, requer alongamento quando tiver mais de um símbolo (ou símbolo grande). +Neste caso, deverá usar versão ajustáveis: + +\begin{tabular}{cc} +comando & exemplo \\ +\verb+\widehat+ & $\widehat{abc}$ \\ +\verb+\widetilde+ & $\widetilde{abc}$ \\ +\verb+\overline+ & $\overline{ab}$ \\ +\verb+\overrightarrow+ & $\overrightarrow{AB}$ \\ +\verb+\overleftarrow+ & $\overleftarrow{ab}$ \\ +\verb+\overleftrightarrow+ & $\overleftrightarrow{AB}$ \\ +\end{tabular} + +As vezes, precisamos colocar embaixo, como sublinhar. + +\begin{tabular}{cc} +comando & exemplo \\ +\verb+\underbar+ & $\underbar{abc}$ \\ +\verb+\underline+ & $\underline{abc}$ \\ +\verb+\underrightarrow+ & $\underrightarrow{AB}$ \\ +\verb+\underleftarrow+ & $\underleftarrow{ab}$ \\ +\verb+\underleftrightarrow+ & $\underleftrightarrow{AB}$ \\ +\end{tabular} + +Colocar a direita (ou como expoente) + +\begin{tabular}{cc} +comando & exemplo \\ +\verb+'+ & $f'$ \\ +\verb+^\prime+ & $f^\prime$ \\ +\verb+^\backprime+ & $f^\backprime$ \\ +\verb+^\ast+ & $f^\ast$ \\ +\verb+^\circ+ & $20^\circ$ \\ +\verb+^llcorner+ & $x^\llcorner$ \\ +\verb+^ulcorner+ & $x^\ulcorner$ \\ +\verb+^\perp+ & $\vec{v}^\perp$ \\ +\end{tabular} + +Não confundir apóstrofos (usado na derivada $f'$ de $f$, por exemplo), com o acento agudo. +Note que i e j sem o ponto é produzido por \verb+\imath+\index{imath@\verb+\imath+} e \verb+\jmath+\index{jmath@\verb+\jmath+}, respectivamente como em $\hat\imath$ e $\hat\jmath$. + +Veja o Exemplo~\ref{ex05:acentos}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex06-06.tex},label=ex:06-06] +\begin{ltxlisting}[caption={ex05-acentos.tex},label=ex05:acentos] +\[ \hat{f}, \tilde{f}, \dot{x}, \dddot{x}, \bar{y}, \overset{\circ}{X}, \vec{v} \] +\[ \widehat{ABC}, \overrightarrow{AB}, \] +\[ f', f^\ast, 20^\circ, \vec{v}^\perp \] +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +\clearpage\thispagestyle{empty}\cleardoublepage +\chapter{Definindo Comandos e Ambientes}\label{chap:novo:comando} +Vamos ver o básico da definição de comandos e ambientes + +\section{Definindo comandos}\label{sec:comandos} +Quando tem o comando longo a ser digitado, poderá definir um comando\index{definir comandos} que funciona como atalho. +Por exemplo, \verb+\mathbb{R}+ toda vez que queremos escrever o conjunto dos números reais é cansativo. +Definir comando para \verb+\mathbb{R}+ permite também, trocar facilmente pelo outro comando para usar outras fontes no lugar de \verb+\mathbb+. +%tais como \verb+\mathds{R}+ do pacote \texttt{dsfont}, se desejar no futuro. + +Para definir um comando, usa-se o \verb+newcommand+\index{newcommand@\verb+\newcommand+}. +Por exemplo, \verb+\newcommand{\Rset}{\mathbb{R}}+ define o comando \verb+\Rset+ que será substituído pelo \verb+\mathbb{R}+ quando é compilado. +Se quer que \verb+\Rset+ funcione tanto dentro como fora das fórmulas, poderá usar o \verb+\ensuremath+\index{ensuremath@\verb+\ensuremath+} como em \verb+\newcommand{\Rset}{\ensuremath{\mathbb{R}}}+. +Note que aqui foi evitado de definir como sendo \verb+\real+, pois o comando \verb+\natural+ já está definido no \LaTeX. + +O nome do comando não deve ter números. +Por exemplo, \verb+\newcommand{\R2}{$\mathbb{R}^2$}+ resulta em erros, pois o nome do comando \verb+\R2+ contém número. + +Analogamente, \verb+\newcommand{\sen}{\mathrm{sen}}+ define o comando para função seno. +Em geral, para definir nome da função, usa-se o \verb+\DeclaremathOperator+\index{DeclareMathOperator@\verb+\DeclareMathOperator+} do pacote \texttt{amsmath} tal como \verb+\DeclaremathOperator{\sen}{sen}+ +em vez do \verb+\newcommand+. +Ele coloca automaticamente o \verb+\mathrm+ no segundo argumento. + +O comando \verb+\newcommand{\argmin}{\mathop{\mathrm{argmin}}}+ define o comando \verb+\argmin+ para função \texttt{argmin}, mas por ter \verb+\mathop+\index{mathop@\verb+\mathop+}, o limitante será colocado embaixo em vez de ser colocado como índice. +Para facilitar, o pacote \texttt{amsmath} define a versão co ``*'' de \verb+\DeclaremathOperator+\index{DeclareMathOperator*@\verb+\DeclareMathOperator*+} que coloca o nome da função dentro do \verb+\mathrm+ e \verb+\mathop+. + +Quando já existe o comando, poderá redefinir usando o \verb+\renewcommand+\index{renewcommand@\verb+\renewcommand+}. + +Se não sabe se existe o comando, poderá usar o \verb+\providecommand+\index{providecommand@\verb+\providecommand+} que define o comando caso não existir. + +Estas definições de comandos costumam ficar no \texttt{preamble} do documento. Veja o Exemplo~\ref{ex06:newcommand}. + +%\let\mathcal\amsmathcal +%\let\mathbb\amsmathbb +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex04-01.tex},label=ex:04-01] +\begin{ltxlisting}[caption={ex06-newcommand.tex},label=ex06:newcommand] +\documentclass[12pt,a4paper]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{amsmath,amssymb} +\newcommand{\Rset}{\ensuremath{\mathbb{R}}} +%\DeclareMathOperator{\sen}{sen} % modo amsmath +\newcommand{\sen}{\mathrm{sen}} % modo normal (sem amsmath) +%\DeclareMathOperator*{\argmin}{argmin} % modo amsmath +\newcommand{\argmin}{\mathop{\mathrm{argmin}}} % modo sem amsmath +\begin{document} +\[ \forall \theta \in \Rset, \cos^2\theta + \sen^2\theta = 1 \] +\[ \argmin_x f(x) = \left\{x: f(x) = \min_{x'} f(x') \right\} \] +\end{document} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} +%\let\mathcal\orimathcal +%\let\mathbb\orimathbb + +Os comandos podem ter até 9 parâmetros. +Os comandos com parâmetros\index{comandos!com parâmetros}, é criado pelo comando \verb+\newcommand{\nome-do-comando}[n]{definição}+ onde \texttt{n} é o número de parâmetros. +No corpo da definição do comando, \verb+#1+, \verb+#2+,\verb+#3+, \ldots especificam os parâmetros na posição $1$, $2$, $3$, etc. + +Quando usa os parâmetros, o primeiro deles podem ser opcional\index{comandos!parâmetro opcional}. +Neste caso, usa-se a sintaxe +\verb+\newcommand{\nome-do-comando}[n][v]{definição}+ +onde ``\texttt{v}'' é o valor padrão quando o parâmetro for omitido. +O Exemplo~\ref{ex06:parametro:opcional} ilustra o caso. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex04-01.tex, parte b},label=ex:04-01:b] +\begin{ltxlisting}[caption={ex06-parametro-opcional.tex},label=ex06:parametro:opcional] +\documentclass[12pt,a4paper]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{amsmath,amssymb} +\newcommand{\conj}[1]{\overline{#1}} % com um parametro +\newcommand{\norma}[2][]{\left\|#2\right\|_{#1}} % com parametro opcional +\newcommand{\seq}[2][n]{\left\{#2_0,\ldots,\,#2_{#1}\right\}} +\begin{document} +\[ \conj{z}\cdot z = \norma{z}^2 \neq \norma[\infty]{z}^2 \] +A sequência $\seq{x}$ para $n=5$ é $\seq[5]{x}$. + +${\conj zw}$ +\end{document} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +O comando \verb+\let+\index{let@\verb+\let+} cria uma copia do comando existente. +Por exemplo, \verb+\let\comandocopia\comandooriginal+ cria um comando \verb+\comandocopia+ que é uma cópia do \verb+\comandooriginal+. +Assim, podemos redefinir o \verb+\comandooriginal+ e se precisar do original, é só chamar o \verb+\comandocopia+. +Também poderá restaurar o comando original usando o \verb+\let+. +Por exemplo, + +\begin{lstlisting}[language={[LaTeX]TeX}] + \let\tanoriginal\tan + \renwcommand{\tan}{\mathrm{tg}} +\end{lstlisting} + +redefine o comando \verb+\tan+, mas se precisar do \verb+\tan+ original, eh só chamar o \verb+\tanoriginal+. +Para restaurar o original, é só usar o \verb+\let+ novamente com em \verb+\let\tan\tanoriginal+. + +\section{Criando ambientes} +Para trecho maior de dados, o ambiente\index{ambiente} (o que tem \verb+\begin+ e \verb+\end+) é mais adequado que os comandos. +Para criar ambientes, usa-se o comando \verb+\newenvironment+\index{newenvironment@\verb+\newenvironment+} na qual o primeiro parâmetro é +nome do ambiente, segundo é o que vai fazer antes e terceiro é o que vai fazer depois. +Quando tem o parâmetro\index{ambiente!parãmetro} (que pode ter até nove), coloca o número de parâmetro como parâmetro opcional de \verb+\newenvironment+, entre primeiro e segundo parâmetro. +Assim como o comando, o ambiente também pode ter o primeiro parâmetro como opcional\index{ambiente!parâmetro opcional}. +Neste caso, passa o seu valor padrão após número de parâmetro como sendo parâmetro opcional ao \verb+\newenvironment+. + +No Exemplo~\ref{ex06:ambiente}, o ambiente \texttt{dem} foi definido somente como a ilustração. +Em geral, usa o ambiente \texttt{proof}\index{proof} do pacote \texttt{amsthm} para demonstrações. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex04-02.tex},label=ex:04-02] +\begin{ltxlisting}[caption={ex06-ambiente.tex},label=ex06:ambiente] +\documentclass[12pt,a4paper]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{amsmath,amssymb} +\newenvironment{myenv}{\begin{center}\em} {\end{center}} +\newenvironment{mypar}[1]{\par\noindent \hrulefill\fbox{ #1 }\hrulefill \\ } {\par\noindent\hrulefill \\} +\newenvironment{dem}[1][Demonstração]{\textbf{#1:}\ } {\hfill\rule{1ex}{1ex}\par} +\begin{document} +\begin{myenv} +Texto enfatizado e centralizado. +\end{myenv} +\begin{mypar}{Teste} +Parágrafo com título simples. +\end{mypar} +\begin{dem} +\ldots +\end{dem} +\begin{dem}[Prova] +\ldots +\end{dem} +\end{document} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +Note que também pode definir os comandos no modo \TeX{} em vez do modo \LaTeX. +Para isso, basta usar o \verb+\def+ que é importante quando um comando define o outro. +O \verb+\def+ que não vamos discutir aqui, deve ser usado com cuidado, pois ele não verifica se o comando exite ou não, redefinindo caso existir. + +\section{Quebrando o código em várias linhas} + +Em geral, a definição de comando ou ambiente deve ficar em uma única linha, mas quando isto é longo, precisamos dividir em mais de uma linha\index{comando!múltiplas linhas}\index{ambiente!múltiplas linhas} para boa organização. +Neste caso, existe trechos que não podem ser quebrados, mas isto requer um conhecimento extra. +Para contornar isto, note que o \LaTeX{} considera que a próxima linha é uma continuação da linha atual quando encontrar ``\%'' grudado na última letra ativa (que não seja comentário). +Assim, quando quebrar a definição de comandos ou ambiente em mais de uma linha, coloque o ``\%'' grudado na última letra. +Fique atento de não colocar espaço entre a última letra e ``\%''. +Veja o Exemplo~\ref{ex06:comando:multilinhas}. + +\begin{singlespacing} +%\begin{lstlisting}[caption={ex04-02.tex, parte b},label=ex:04-02:b] +\begin{lstlisting}[caption={ex06-comando-multlinhas.tex},label=ex06:comando:multilinhas] +\newcommand{\norma}[2][]{% + \left\|#2\right\|_{#1}% +} +\newenvironment{mypar}[1]% + {\par\noindent \hrulefill\fbox{ #1 }\hrulefill \\}% o que faz antes + {\par\noindent\hrulefill \\}% o que faz depois +\end{ltxlisting} +%\end{lstlisting} +\end{singlespacing} + +\clearpage\thispagestyle{empty}\cleardoublepage +\chapter{Divisão Lógica de Documentos} +Neste capítulo, vamos estudar a divisão lógica de documentos. + +\section{Capítulos, seções e similares} +Nos livros e relatórios, os conteúdos são organizados em capítulos\index{capítulo}, indicado por \verb+\chapter+\index{chapter@\verb+\chapter+}. +Os capítulos podem ser divididos em seções\index{seção} indicado pelo comando \verb+\section+\index{section@\verb+\section+}, se assim desejar. +Neste caso, evite ter capítulos com seções e outro sem seções, para ter uniformidades. + +Se a seção ficar grandes, podem subdividir em subseções\index{subseção} com o comando \verb+subsection+\index{subsection@\verb+\subsection+}, mas tome cuidado para que todas seções tenham subseções. + +Existem ainda, \verb+\subsubsection+\index{subsubsection@\verb+\subsubsection+} (subsubseções), \verb+\paragraph+\index{paragraph@\verb+\paragraph+} (parágrafos\index{parágrafo}) e \verb+\subparagraph+\index{subparagrapg@\verb+\subparagraph+} (subparágrafos\index{subparágrafo}) que são menos usados. + +No caso de artigos, o conteúdo costuma ser divido em seções e caso desejar, seções podem ser subdivididos em subseções (evitando que tenha seção com subseção e outro sem subseção). + +O capítulo inicia-se com o comando \verb+\chapter{Título}+ e seções com o comando \verb+\section{Título}+. + +Estes comandos aceitam a opção de especificar os ``títulos curtos''\index{título curto} que são usados no sumário e cabeçalho, o que podem ser passados como parâmetro opcional colocado antes do título. +Neste formato, usado quando título é longo, tem a forma \verb+\chapter[Título Curto]{Título}+ e \verb+\section[Título Curto]{Título}+ + +%\setcounter{lstorichapter}{\value{chapter}} +%\setcounter{lstorisection}{\value{section}} +%\setcounter{chapter}{0} +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex05-01.tex},label=ex:05-01,preset={\setcounter{chapter}{0},\let\addcontentsline\emptyaddcontentsline}] +\begin{ltxlisting}[caption={ex07-capitulo.tex},label=ex07:capitulo] +\chapter[Titulo Curto]{Título Longo do Capítulo} +Apresentação bem rápida do capítulo. +\section[Título curto]{Título longo da seção} +Texto da seção +\section{Título da outra seção} +Texto da outra seção +\ldots +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} +%\setcounter{chapter}{\value{lstorichapter}} +%\setcounter{section}{\value{lstorisection}} +%% \addtocounter{chapter}{-1} +%\let\addcontentsline\oriaddcontentsline + +Quando há os capítulos e seções, o sumário\index{sumário} podem ser produzidos automaticamente pelo comando \verb+\tableofcontents+\index{tableofcontents@\verb+\tableofcontents+}. + +Para comandos do tipo capítulos (\verb+\chapter+, \verb+\section+, etc), existem as versões com ``*''\index{chapter*@\verb+\chapter*+}\index{section*@\verb+\section*+} que não serão enumeradas e não serão colocadas no sumário, apesar de ter mesma formatação. +Por exemplo, \verb+\chapter*{Resumo}+ não será enumerado, nem vai no sumário. + +Note que, no caso de artigos, o resumo tem formatação diferente do restante das seções. +Assim, existe o ambiente especial \texttt{abstract}\index{abstract} para o resumo, o que não é mesmo que \verb+\section*+. + +Note a diferença e similaridade do Exemplo~\ref{ex07:capitulo:star} que usa a versão ``*'', com o Exemplo~\ref{ex07:capitulo} que usa a versão normal. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex05-01.tex, parte b},label=ex:05-01:b] +\begin{ltxlisting}[caption={ex07-capitulo-star.tex},label=ex07:capitulo:star] +\chapter*{Resumo} +Resumo aqui. +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +\section{Capa, conteúdo frontal e principal} + +O Exemplo~\ref{ex07:matter} ilustra a estrutura básica de documentos tipo livro na qual não vamos colocar a saída aqui, por ocupar várias páginas. + +\begin{singlespacing} +%\begin{lstlisting}[caption={ex05-01.tex, parte c},label=ex:05-01:c] +\begin{lstlisting}[caption={ex07-matter.tex},label=ex07:matter] +\documentclass[12pt,a4paper]{book} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{amsmath,amssymb} +\pagestyle{empty} +\begin{document} +% capa +\frontmatter +\chapter*{Resumo}\thispagestyle{empty} +Resumo aqui. +\pagestyle{headings} +\tableofcontents % Sumário +\chapter{Prefácio} +Apresentação do trabalho. +\mainmatter +\chapter{Título do Capítulo Aqui} +Apresentação bem rápida do capítulo. +\section{Títuo da seção aqui} +Texto da seção +\ldots +\appendix % se existir apẽndice +\chapter{Título do Apêndice 1} % se existir +Texto do apêndice 1 +\ldots +\backmatter % opcional +% referencia biliografica +% indice remissivo, se existir +\end{document} +\end{lstlisting} +\end{singlespacing} + +O comando \verb+\pagestyle{empty}+\index{patestyle@\verb+\pagestyle+!empty} antes do \verb+\begin{document}+ remove as enumerações das páginas para que parte inicial do livro fiquem sem a enumeração. + +A capa simples nos livros e relatórios podem ser produzidos pelo comando \verb+\maketitle+\index{maketitle@\verb+\maketitle+}, desde que seja fornecido algumas informações tais como título, autor e data pelos comandos \verb+\title+\index{title@\verb+\title+}, \verb+\author+\index{author@\verb+\author+} e \verb+\date+\index{date@\verb+\date+}, colocados antes do \verb+\maketitle+. +Veja Exemplo~\ref{ex07:maketitle}. + +\begin{singlespacing} +\begin{lstlisting}[caption={ex07-maketitle.tex},label=ex07:maketitle] +\documentclass[12pt,a4paper]{book} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{amsmath,amssymb} +\title{Exemplo} +\author{Sadao Massago} +\date{Fevereiro, 2018} +\begin{document} +\maketitle +\frontmatter +\ldots +\end{document} +\end{lstlisting} +\end{singlespacing} + +Note que, \verb+\date+, quando não especificado, será assumido como sendo \verb+\today+\index{today@\verb+\today+} que é data de compilação do documento. Se não quer que apareça data, deve colocar \verb+\date{}+. + +Para criar títulos personalizados nos livros e relatórios, use o ambiente \texttt{titlepage}\index{titlepage}. +Note que nos livros e relatórios, a capa não será contada como páginas, mas todas outras páginas, mesmo totalmente em branco, serão contadas. + +O comando \verb+\frontmatter+\index{frontmatter@\verb+\frontmatter+} disponível somente para livros, indica que será matéria frontal\index{matéria!frontal}, tendo as páginas enumeradas em romano minúsculo e sem a contagem de capítulos (mesmo para versão sem ``*''). + +O comando \verb+\thispagestyle{empty}+\index{thispagestyle@\verb+\thispagestyle+!empty} no \verb+\chapter*{Resumo}+ remove a enumeração da página atual (primeira página do ``Resumo''). +Note que capítulos usa o estilo de página \texttt{plain}\index{estilo da página!plain} que enumera embaixo da página, mesmo que o estilo de página esteja em \texttt{empty}. +Assim, colocar \verb+\thispagestyle{empty}+ é necessário para remover paginação desta primeira página do ``capítulo''. + +Antes do sumário\index{sumário} colocado pelo comando \verb+\tableofcontents+\index{tableofcontents@\verb+\tableofcontents+}, foi colocado \verb+\pagestyle{headings}+\index{pagestyle@\verb+\pagestyle+!empty} para que volte a colocar páginas e cabeçalho superior. +Note que, no livro, o que vem antes do sumário não devem ser paginadas, mas o que vem depois do sumário, costuma ser paginados. +Por ser \texttt{frontmatter}, a paginação será em romano minusculo. + +Depois do prefácio, tem o comando \verb+\mainmatter+\index{mainmatter@\verb+\mainmatter+} que também é disponível somente para livros. +Este comando reinicia a paginação (começa a contar de 1 novamente) e usa a enumeração em arábico. +Também faz começar a contar capítulos. + +O comando \verb+\appendix+\index{appendix@\verb+\appendix+} indica que o que segue é apêndice\index{apêndice} que complementa o documento. +Ele é disponível para livros, relatórios e artigos. +No caso de livros e relatórios, o comando \verb+\chapter+ começará a produzir título para apêndices em vez de capítulos (escreverá Apêndice A, Apêndice B, etc em vez de Capítulo 1, Capítulo 2, etc). +No caso de artigos, o comando \verb+\section+ que produzirá os apêndices. + +O comando \verb+\backmatter+\index{backmatter@\verb+\backmatter+} também é disponível somente para livros. +O \verb+\backmatter+ faz com que \verb+\chapter+ funcione igual a \verb+\chapter*+ (versão ``*''). +Como não é costume colocar \verb+\chapter+ no \texttt{backmatter}, o comando pode ser omitido. + +Em geral, a parte final do documento é a referência bibliográfica. +Se existir o índice remissivo, deverá ser colocado depois da referências bibliográficas. + +Note que o relatório é um documento e não é livro. +Assim, todas páginas exceto a capa, devem estar enumeradas em arábico e em sequencias. +Assim, não há divisão de \texttt{frontmatter} e \texttt{mainmatter}, não existindo comandos correspondentes. + +A configuração do documento no artigo é ilustrado no Exemplo~\ref{ex07:article}. % que também omitiremos a sua saída final. + +%\setcounter{lstorichapter}{\value{chapter}} +%\setcounter{lstorisection}{\value{section}} +%% \let\orilabel\label +\let\orithesection\thesection +\renewcommand{\thesection}{\arabic{section}} +\newcommand{\articleappendix}{\setcounter{section}{0}\def\thesection{\Alph{section}}} +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex05-01.tex, parte e},label=ex:05-01:e,preset={\setcounter{chapter}{1},\setcounter{section}{0},\let\addcontentsline\emptyaddcontentsline,\let\title\orititle,\let\author\oriauthor,\let\date\oridate,\let\maketitle\makearticletitle,\let\appendix\articleappendix}] +\begin{ltxlisting}[caption={ex07-article.tex},label=ex07:article,preset={\let\maketitle\makearticletitle\let\appendix\articleappendix}] +\documentclass[12pt,a4paper]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{amsmath,amssymb} +\title{Exemplo} +\author{Sadao Massago} +\date{Fevereiro, 2018} +\begin{document} +\maketitle +\begin{abstract} +Resumo aqui. +\end{abstract} +% \tableofcontents % so se for artigo longo +\section{Título da seção 1} +Texto da seção 1 +\section{Título da seção 2} +Texto da seção 2 +\ldots +\appendix % se tiver apêndice +\section{Título do Apêndice 1} +Texto do apêndice 1 +\ldots +% referência biliográfica +\end{document} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} +%%\let\ref\oriref +%\setcounter{chapter}{\value{lstorichapter}} +%\setcounter{section}{\value{lstorisection}} +%% \addtocounter{chapter}{-1} +\let\thesection\orithesection +%\let\addcontentsline\oriaddcontentsline + + +%\begin{singlespacing} +%\begin{lstlisting}[caption={ex05-01.tex, parte e},label=ex:05-01:e] +%\documentclass[12pt,a4paper]{article} +%\usepackage[T1]{fontenc} +%\usepackage[utf8]{inputenc} +%\usepackage{amsmath,amssymb} +%\title{Exemplo} +%\author{Sadao Massago} +%\date{Fevereiro, 2018} +%\begin{document} +%\maketitle +%\begin{abstract} +%Resumo aqui. +%\end{abstract} +%% \tableofcontents % se for artigo longo +%\section{Título da Seção 1} +%Texto da seção 1 +%\section{Título da Seção 2} +%Texto da seção 2 +%\ldots +%\appendix % se tiver apêndice +%\section{Título do apêndice 1} +%Texto do apêndice 1 +%\ldots +%% referência biliográfica +%\end{document} +%\end{lstlisting} +%\end{singlespacing} + +O \verb+\maketitle+\index{maketitle@\verb+\maketitle+} produz título do artigo com informações usando título, autor e data fornecidos como nas capas dos livros e relatórios. + +Note que não costumamos usar o índice remissivo para artigos, apesar de ter comandos disponíveis para isso. + +\section{Limpando o verso das páginas} +O livro costuma ser diagramado para impressão em dois lados (opção da classe de documento \texttt{twoside}\index{twoside}), embora poderá optar em \texttt{oneside}\index{oneside} que é um lado, se quiser. +Também podemos usar \texttt{openright}\index{openright} que começa o capítulo somente no lado direito (\texttt{openany}\index{openany} começa o capítulo tanto no lado esquerdo como no lado direito). + +Nestes casos, o verso do sumário, resumo, etc, assim como versos do final dos capítulos, se existir, ficará em branco em vez de ter enumeração de páginas ou cabeçalhos. +Para que isso aconteça, é só inserir o código +\begin{verbatim} +\clearpage\thispagestyle{empty}\cleardoublepage +\end{verbatim} +antes de cada capítulo ou comandos que produzem os capítulos ou similares, tais como sumário, referências bibliográficas e índice remissivo. +Também é necessário antes do \verb+\mainmatter+. +Veja o Exemplo~\ref{ex07:clearpage} na qual a saída foi omitida. + +\begin{singlespacing} +\begin{lstlisting}[caption={ex07-clearpage.tex},label=ex07:clearpage] +\documentclass[12pt,a4paper,openright]{book} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{amsmath,amssymb} +\pagestyle{empty} +\begin{document} +% capa +\frontmatter +\chapter*{Resumo}\thispagestyle{empty} +Resumo aqui. +\cleardoublepage +\pagestyle{headings} +\tableofcontents % Sumário +\clearpage\thispagestyle{empty}\cleardoublepage +\chapter{Prefácio} +Apresentação do trabalho. +\clearpage\thispagestyle{empty}\cleardoublepage +\mainmatter +\chapter{Título do Capítulo 1} +Texto do primeiro capítulo. +\clearpage\thispagestyle{empty}\cleardoublepage +\chapter{Título do Capítulo 2} +Texto do segundo capítulo. +\ldots +\clearpage\thispagestyle{empty}\cleardoublepage +\appendix % se existir apẽndice +\chapter{Título do Apêndice 1} % se existir +Texto do apêndice 1 +\ldots +\backmatter % opcional: sem efeito visual +\clearpage\thispagestyle{empty}\cleardoublepage +% referencia biliografica +\clearpage\thispagestyle{empty}\cleardoublepage +% indice remissivo, se existir +\end{document} +\end{lstlisting} +\end{singlespacing} + +O comando \verb+\clearpage+\index{clearpage@\verb+\clearpage+} finaliza a página. +Por exemplo, se tiver algo pendente como figuras a serem colocadas, será feito. +Com \verb+\thispagestyle{empty}+\index{thispagestyle@\verb+\thispagestyle+!empty}, desabilita o estilo da página atual e com \verb+\cleardoublepage+\index{cleardoublepage@\verb+\cleardoublepage+}, inserir página em branco, se necessário. + +\section{Efetuando pequenos ajustes} +O primeiro parágrafo da seção ou capítulo não será indentado (empurrado para direita). +A indentação é feito para distinguir um parágrafo do outro, mas como não tem parágrafo anterior, não há necessidades de indentação. +No entanto, algumas pessoas podem querer indentar o primeiro parágrafo. +Se for o caso, basta usar o pacote \texttt{indentfirst}\index{indentfirst} no \texttt{preamble} do documento. + +Por outro lado, se quer remover indentação de algum parágrafo como o que segue uma fórmula matemática no modo \texttt{displaystyle}, basta usar o comando \verb+\noindent+\index{noindent@\verb+\noindent+}. +%Também pode inserir a indentação, usando o comando \verb+\indent+, exceto nos lugares proibidos como o primeiro parágrafo. + +Também pode querer que uma página fique um pouco maior para acomodar o conteúdo atual. +Neste caso, use o comando \verb+\enlargethispage+\index{enlargethispage@\verb+\enlargethispage+}. +Por exemplo, \verb+\enlargethispage{\baselineskip}+ aumenta a página atual por uma linha. +Este tipo de ajustes requer cuidados para não comprometer a qualidade da diagramação. + +Se quer que algum comando seja executado após o término da página atual, use o pacote \texttt{afterpage}\index{afterpage} que implementa o comando de mesmo nome. +Por exemplo, \verb+\afterpage{\clearpage}+ colocará todas figuras e tabelas pendentes na próxima página. + +\clearpage\thispagestyle{empty}\cleardoublepage +\chapter{Teoremas e Similares} +Os ambientes para teoremas e similares podem ser criados de forma apropriada, facilmente no \LaTeX. + +\section{Criando ambiente para teoremas} + +Para definir o ambiente para escrever teoremas\index{teoremas} e similares, +costuma usar o pacote \texttt{amsthm}\index{amsthm} que melhora a usabilidade do \verb+\newtheorem+\index{newtheorem@\verb+\newtheorem+} usados para este propósito. + +O comando \verb+\newtheorem{theorem}{Teorema}[chapter]+ cria um ambiente chamado \texttt{theorem} que usa como título ``Teorema'' com contador vinculado a capítulo (\texttt{chapter}). +Se for artigo, troque o \texttt{chapter} pelo \texttt{section} como em +\verb+\newtheorem{theorem}{Teorema}[section]+. + +Para definir outros ambiente similares aos teoremas, tais como axioma, lema, corolário e proposição, poderá usar o comando tal como \verb+\newtheorem{proposition}[theorem]{Proposição}+ onde \texttt{theorem} no parâmetro opcional na segunda posição indica que será contado junto com o teorema. +Asim ficará Teorema~1.1, Proposição~1.2, etc. +O modelo para proposição serve para demais ambientes similares aos teoremas. + +Para ambientes como definição, exemplos e exercícios, devemos usar o estilo definição, obtido pelo comando \verb+\theoremstyle{definition}+\index{theoremstyle@\verb+\theoremstyle+!definition}. + +A seguir, usa-se o \verb+\newtheorem+ novamente como \verb+\newtheorem{definition}[theorem]{Definição}+ e \verb+\newtheorem{example}[theorem]{Exemplo}+. + +Para observações e notas, deve mudar para estilo \texttt{remark} com o comando \verb+\theoremstyle{remark}+\index{theoremstyle@\verb+\theoremstyle+!remark}. + +Note que \texttt{amsthm} providencia o ambiente para demonstrações, denominado de \texttt{proof}\index{proof}. +Veja o Exemplo~\ref{ex08:teorema}. +%\setcounter{lstorichapter}{\value{chapter}} +%\setcounter{lstorisection}{\value{section}} +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex06-05.tex},label=ex:06-05,preset={\setcounter{chapter}{0},\let\addcontentsline\emptyaddcontentsline}] +\begin{ltxlisting}[caption={ex08-teorema.tex},label=ex08:teorema] +\documentclass[12pt,a4paper]{book} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage[brazil]{babel} +\usepackage{amssymb,amsmath} +\usepackage{amsthm} % para configurar o teorema +% 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} +\begin{document} +\chapter{Triângulo Equilátero} +\begin{definition} + Um triângulo é dito \emph{triângulo equilátero} quando todos os lados forem congruentes. +\end{definition} +\begin{theorem} + Todo triângulo equilátero se, e somente se, todos ângulos forem congruentes. +\end{theorem} +\begin{proof} +\ldots +\end{proof} +\begin{remark} +Um triângulo cuja todos ângulos são congruentes é dito \emph{equiângulo}. +\end{remark} +\end{document} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} +\theoremstyle{plain} +%\setcounter{chapter}{\value{lstorichapter}} +%\setcounter{section}{\value{lstorisection}} +%\let\addcontentsline\oriaddcontentsline + +\section{Parâmetros opcionais} + +Note que os ambientes tipo teoremas permite colocar o título como parâmetro opcional do ambiente. +Isto também vale para o ambiente \texttt{proof} quando existem textos entre o enunciado do teorema e a sua prova. +O comando \verb+\proofname+\index{proofname@\verb+\proofname+} armazena o ``nome'' do ambiente \texttt{proof} que o valor atual é ``\texttt{\proofname}''. +Quando a demonstração é finalizada pela equação no modo \texttt{displaystyle}, a marca do final de demonstração fica na linha de baixo. +Para corrigir isso, existe o comando \verb+\qedhere+\index{qedhere@\verb+\qedhere+} que indica onde a marca de final de demonstração deve ser colocada. +Veja o Exemplo~\ref{ex08:teorema:parametro}. + +% Para mudar a marca do final de demonstração, redefina o comando \qedsymbol +%\renewcommand{\qedsymbol}{cqd.} + + +% showexpl juntamente com teoremas e referencias, causa erro na segunda compilacao. +% Nao sei porque, pois na equacao com referencias, +% ou teoremas sem referencias funcionam bem. +% Usando lstlisting e minipage para ter mesmo effeito de showexpl + +%\setcounter{lstorichapter}{\value{chapter}} +%%\setcounter{lstorisection}{\value{section}} +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex06-05.tex, parte b},label=ex:06-05:b,preset={\let\label\orilabel,\setcounter{chapter}{0}}] +%\begin{definition} +%Um triângulo é dito \emph{triângulo retângulo} quando tem um ângulo reto. O lado oposto ao ângulo reto é denominado de \emph{hipotenusa} e outros dois lados são denominados de \emph{catetos}. +%\end{definition} +%\begin{theorem}[Pitágoras]\label{thm:pitagoras} +% Sejam $\Delta ABC$, um triângulo retângulo onde $a$ é hipotenusa. Então +% \[ a^2=b^2+c^2 \] +%\end{theorem} +%\begin{remark} +%A reciproca do Teorema~\ref{thm:pitagoras} também é verdadeira. +%\end{remark} +%\begin{proof}[\proofname{} do Teorema~\ref{thm:pitagoras}] +%\ldots +%Assim, temos que +%\[ a^2 + b^2 = c^2 \qedhere \] +%\end{proof} +%\end{LTXexample} +%\end{singlespacing} +%\setcounter{chapter}{\value{lstorichapter}} +%%\setcounter{section}{\value{lstorisection}} + +%\setcounter{lstorichapter}{\value{chapter}} +%\setcounter{lstorisection}{\value{section}} +%\let\orilabel\label +%\begin{singlespacing} +%% \begin{lstlisting}[caption={ex06-05.tex, parte b},label=ex:06-05:b] +%\begin{LTXexample}[pos=b,caption={ex06-05.tex, parte b},label=ex:06-05:b,preset={\let\label\orilabel,\setcounter{chapter}{1}}] +\begin{ltxlisting}[caption={ex08-teorema-parametro.tex},label=ex08:teorema:parametro,preset={\setcounter{chapter}{1}}] +\begin{definition} +Um triângulo é dito \emph{triângulo retângulo} quando tem um ângulo reto. O lado oposto ao ângulo reto é denominado de \emph{hipotenusa} e outros dois lados são denominados de \emph{catetos}. +\end{definition} +\begin{theorem}[Pitágoras]\label{thm:pitagoras} + Sejam $\Delta ABC$, um triângulo retângulo onde $a$ é hipotenusa. Então + \[ a^2=b^2+c^2 \] +\end{theorem} +\begin{remark} +A reciproca do Teorema~\ref{thm:pitagoras} também é verdadeira. +\end{remark} +\begin{proof}[\proofname{} do Teorema~\ref{thm:pitagoras}] +\ldots +Assim, temos que +\[ a^2 + b^2 = c^2 \qedhere \] +\end{proof} +\end{ltxlisting} +%\end{LTXexample} +%%\end{lstlisting} +%\end{singlespacing} +%\setcounter{chapter}{\value{lstorichapter}} +%\setcounter{section}{\value{lstorisection}} + +%\noindent +%\setcounter{lstorichapter}{\value{chapter}} +%\setcounter{lstorisection}{\value{section}} +%\fbox{\begin{minipage}{\linewidth} +%\begin{singlespacing} +%\setcounter{chapter}{1} +%\begin{definition} +%Um triângulo é dito \emph{triângulo retângulo} quando tem um ângulo reto. O lado oposto ao ângulo reto é denominado de \emph{hipotenusa} e outros dois lados são denominados de \emph{catetos}. +%\end{definition} +%\begin{theorem}[Pitágoras]\label{thm:pitagoras} +% Sejam $\Delta ABC$, um triângulo retângulo onde $a$ é hipotenusa. Então +% \[ a^2=b^2+c^2 \] +%\end{theorem} +%\begin{remark} +%A reciproca do Teorema~\ref{thm:pitagoras} também é verdadeira. +%\end{remark} +%\begin{proof}[\proofname{} do Teorema~\ref{thm:pitagoras}] +%\ldots +%Assim, temos que +%\[ a^2 + b^2 = c^2 \qedhere \] +%\end{proof} +%\end{singlespacing} +%\end{minipage}} +%\setcounter{chapter}{\value{lstorichapter}} +%\setcounter{section}{\value{lstorisection}} + +\clearpage\thispagestyle{empty}\cleardoublepage +\chapter[Figuras, Tabelas e Imagens Externas]{Figuras e Tabelas Flutuantes, Tabelas Longas e Imagem Externa} +Tratar também de caixas gráficas. + +\section{Figuras flutuantes} + +Elemento flutuante\index{elemento!flutuante} é aquele que não precisa ser colocado obrigatoriamente na posição ``digitada'', mas que será colocado na melhor posição possível em termos de apresentabilidade. + +A figura flutuante\index{figura!flutuante} é especificado pelo ambiente \texttt{figure}\index{figure} e a tabela flutuante é especificado pelo ambiente \texttt{table}\index{table}, respectivamente. +Veja o Exemplo~\ref{ex09:figura}. + +%%\setcounter{lstorichapter}{\value{chapter}} +%% \setcounter{lstorisection}{\value{section}} +%\begin{singlespacing} +%%\begin{LTXexample}[pos=b,caption={ex08-01.tex},label=ex:08-01,preset={\setcounter{chapter}{0},\let\addcontentsline\emptyaddcontentsline}] +%\begin{LTXexample}[pos=b,caption={ex08-01.tex},label=ex:08-01] +\begin{ltxlisting}[caption={ex09-figura.tex},label=ex09:figura] +\begin{figure}[hbp] +\center + + \ + + Aqui se coloca a primeira figura + + \ + + \caption[Primeira figura]{Primeira figura como elemento flutuante} + \label{fig:simp} +\end{figure} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} +%%\setcounter{chapter}{\value{lstorichapter}} +%%\setcounter{section}{\value{lstorisection}} +%%\let\addcontentsline\oriaddcontentsline + +O Exemplo~\ref{ex09:figura} ilustra o uso do ambiente flutuante \texttt{figure}. +O parâmetro opcional é uma sequência de caracteres, especificando a ordem que tentará colocar a figura. + +\begin{description} + \item[h]\index{float!h} Onde foi digitado + \item[b]\index{float!b} na parte inferior da página + \item[t]\index{float!t} na parte superior da página + \item[p]\index{float!p} página separada. + \item[!]\index{float!exclamation@\exclsymbforindex} ignorar a restrição de espaçamento. +\end{description} + + No ambiente flutuante, o \LaTeX{} tentará as posições seguindo a lista de especificação dos parâmetros e inserirá na primeira posição que satisfizer a exigência. + Caso nenhuma posição for conveniente, criará uma página separada especialmente para ele. + + Durante a tentativa de inserção, existem restrições estéticas tal como considerar inadequado quando sobra muito pouco espaço para texto. +Restrições como estes podem ser ignorados quando utilizar a opção ``!'' + +O comando \verb+\caption+\index{caption@\verb+\caption+} produz enumeração e título da figura, podendo esta no começo ou no final do ambiente \texttt{figure}. +Ele aceita o nome curto como argumento opcional para ser usado na lista de figuras, caso título da figura for longa. + +Note que, o rótulo colocado pelo \verb+\label+\index{label@\verb+\label+} deverá ficar dentro ou depois de \verb+\caption+, pois ele que é responsável pela enumeração das figuras. + +Para colocar moldura, poderá usar o \verb+\fbox+\index{fbox@\verb+\fbox+}, mas ele não pode ter parágrafo como argumento. +Neste caso, podemos usar a combinação com \texttt{minipage} como no Exemplo~\ref{ex09:figura:fbox}. + +%%\setcounter{lstorichapter}{\value{chapter}} +%% \setcounter{lstorisection}{\value{section}} +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex08-01.tex, parte b},label=ex:08-01:b] +\begin{ltxlisting}[caption={ex09-figura-fbox.tex},label=ex09:figura:fbox] +\begin{figure}[hbp!] + \center + \fbox{\begin{minipage}{0.5\linewidth} + \center + Aqui insere a segunda figura + \caption{Segunda figura} \label{fig:frame} + \end{minipage} + } % fbox +\end{figure} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} +%%\setcounter{chapter}{\value{lstorichapter}} +%%\setcounter{section}{\value{lstorisection}} + +%Caso em que precise inserir duas ou mais imagens numa mesma figura, use o pacote \texttt{subfigure}. + +\section{Tabelas flutuantes} + +A tabela flutuante\index{tabela!flutuante} é criado da forma similar, usando o ambiente \texttt{table}\index{table}. +Os argumentos opcionais para controlar a posição de inserção é mesmo da figura. +Veja o Exemplo~\ref{ex09:tabela:flutuante} que ilustra a tabela flutuante, contendo texto como elemento. + +%%\setcounter{lstorichapter}{\value{chapter}} +%% \setcounter{lstorisection}{\value{section}} +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex08-01.tex, parte c},label=ex:08-01:c] +\begin{ltxlisting}[caption={ex09-tabela-flutuante.tex},label=ex09:tabela:flutuante] +\begin{table}[hbp] +\center + + \ + + Aqui se coloca a primeira tabela + + \ + + \caption{Primeira tabela} + \label{tab:simp} +\end{table} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} +%%\setcounter{chapter}{\value{lstorichapter}} +%%\setcounter{section}{\value{lstorisection}} + +Normalmente, o conteúdo da tabela é criado pelo ambiente apropriado como \texttt{tabular} ou similar. +Alguns casos, podem ser criados como arquivo separado e inserido como no caso de figuras. + +Note que, podemos criar moldura, incluindo o título da tabela através de \texttt{fbox} combinado com o \texttt{minipage}, como feito na figura. + +No caso do Exemplo~\ref{ex09:tabela:tabular} ilustra o uso de \texttt{tabular} dentro do ambiente \texttt{table} para criar tabela flutuante. + +%% \setcounter{lstorichapter}{\value{chapter}} +%% \setcounter{lstorisection}{\value{section}} +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex08-01.tex, parte d},label=ex:08-01:d] +\begin{ltxlisting}[caption={ex09-tabela-tabular.tex},label=ex09:tabela:tabular] +\begin{table}[hbp] + \center + \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} + \caption{Usando tabular} \label{tab:tab} +\end{table} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} +%%\setcounter{chapter}{\value{lstorichapter}} +%%\setcounter{section}{\value{lstorisection}} + +Note que, o comando \texttt{supressfloats}\index{supressfloats@\verb+\supressfloats+} podem ser usados para impedir que mais \texttt{floats} sejam inseridas na página específica, mas os ``floats'' com opção ``!'' não respeitam este comando. + +Para que ``floats'' não processados (que ainda não foram colocados) sejam postos antes de mudar a página, basta usar +\verb+\clearpage+ ou \verb+\cleardoublepage+ usado para limpar configurações de páginas (chamado pelo \verb+\chapter+, por exemplo). + +Note que, lista de figuras\index{lista de figuras} e de tabelas\index{lista de tabelas} são geradas pelos comandos \verb+\listoffigures+\index{listoffigures@\verb+\listoffigures+} e \verb+\listoftables+\index{listoftables@\verb+\listoftables+} que costumam ser colocados depois do \verb+\tableofcontents+\index{tableofcontents@\verb+\tableofcontents+} (sumário\index{sumário}). + +\section{Tabelas longas} + +Tabelas longas é ideal para tabelas pequenas. +Mas as vezes precisamos de tabelas grandes que podem ocupar mais de uma página. +Para isso, existe o ambiente \texttt{longtable}\index{longtable} implementado no pacote do mesmo nome. +A tabela longa\index{tabela longa} é contado junto com as tabelas flutuantes e não devem ser colocados dentro do ambiente \texttt{table}. +Ele também \verb+\caption*+\index{caption*@\verb+\caption*+} (a versão ``*'') que coloca o título, mas não acrescenta na lista de tabelas. +Os parâmetros básicos são mesmo do ambiente \texttt{tabular}. + +Veja o Exemplo~\ref{ex09:longtable}. Para que este exemplo funcione, deverá ter \verb+\usepackage{longtable}+ no \texttt{preamble} do documento. + +%% \setcounter{lstorichapter}{\value{chapter}} +%% \setcounter{lstorisection}{\value{section}} +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex08-02.tex},label=ex:08-02] +\begin{ltxlisting}[caption={ex09-longtable.tex},label=ex09:longtable] + \begin{longtable}{|c|r|} + \caption{Tabela Longa} \label{ltab:teste} + \\ % é necessário pular linha após definições preliminares: caption, label, etc. + \hline + \textbf{centrada} & \textbf{para direita} \\ \hline \hline + coluna 1 & coluna 2 \\ \hline + coluna 1 & coluna 2 \\ \hline + $\vdots$ & $\vdots$ \\ \hline + coluna 1 & coluna 2 \\ \hline + \end{longtable} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} +%%\setcounter{chapter}{\value{lstorichapter}} +%%\setcounter{section}{\value{lstorisection}} + +Note que, ao iniciar o ambiente, coloca as configurações tais como títulos, o que fazer antes de mudar a página, etc. +Depois pula a linha com ``\verb+\\+'' e resto segue normalmente. +Como \texttt{longtable} usa o arquivo auxiliar para armazenar sua largura, pode precisar compilar duas vezes para ter o resultado desejado (assim como acontece com referencias cruzadas). + +Para efetuar as configurações tais como o que fazer quando muda a página, etc, veja o manual correspondente. + +\section{Imagem externa} +As figuras podem ser elaboradas usando o próprio \LaTeX, mas muitas vezes criamos usando um programa externo. +As imagens externas\index{imagem externa} para serem inseridas no documento \LaTeX, deverá estar no formato \texttt{pdf}, \texttt{jpg/jpeg} ou \texttt{png}. +O formato \texttt{pdf} costuma ser usado para ilustrações científicos por ser pequeno e é de alta qualidade (exceto quando convertido de algum formato \texttt{bitmap}). +Se o programa permite gerar \texttt{pdf}, prefira usar este formato. +O formato \texttt{jpg/jpeg} é apropriado para fotos, mas não suporta transparências. +O formato \texttt{png} suporta transparências. + +O comando para incluir gráficos externos é \verb+\includegraphics+\index{includegraphics@\verb+\includegraphics+} implementado no pacote \texttt{graphicx}\index{graphicx} (não confundir com o pacote antigo \texttt{graphics} que tem menos recursos). +Para exemplo desta seção, assumimos que tenha \verb+\usepackage{graphicx}+ no \texttt{preamble} do documento. +Veja Exemplo~\ref{ex09:imagem}. + +% \setcounter{lstorichapter}{\value{chapter}} +% \setcounter{lstorisection}{\value{section}} +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex09-01.tex},label=ex:09-01] +\begin{ltxlisting}[caption={ex09-imagem.tex},label=ex09:imagem] +\begin{figure}[hbp] + \center +\includegraphics[width=0.5\linewidth]{latex-via-exemplos-fig} +\caption{Imagem PDF} +\end{figure} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} +%\setcounter{chapter}{\value{lstorichapter}} +%\setcounter{section}{\value{lstorisection}} + +Note que não foi colocado a extensão (\texttt{.pdf}) no nome do arquivo. +Em geral omitimos a extensão do arquivo para poder trocar de formatos, se desejar. + +No parâmetro opcional, foi colocado \verb+width=0.5\linewidth+ para especificar que largura é metade da largura da linha atual. +Os parâmetros opcionais\index{includegraphics@\verb+\includegraphics+!parâmetro opcional} controlam o tamanho e rotação das imagens. + +\begin{description} + \item[width] largura da imagem + \item[height] altura da imagem + \item[totalheight] altura total (quando é rotacionado. \texttt{height} só mede da linha de base para cima). + \item[scale] ampliação + \item[angle] rotação em graus + \item[origin] centro de rotação especificado pela combinação de ``l'' (left), ``r'' (right), ``t'' (top), ``b'' (botton) e ``c'' (center). + \item[keepaspectratio] manter proporção quando \texttt{height} e \texttt{width} for especificado simultaneamente (usado sem o valor). +\end{description} + +No caso de incluir o arquivo \texttt{PDF} com mais de uma página\index{imagem PDF!múltiplas páginas}, poderá usar a opção \texttt{page} para indicar a página a ser incluída. + +O Exemplo~\ref{ex09:imagem:rotacao} ilustra a rotação por $30^\circ$ em torno do centro. + +% \setcounter{lstorichapter}{\value{chapter}} +% \setcounter{lstorisection}{\value{section}} +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex09-01.tex, parte b},label=ex:09-01:b] +\begin{ltxlisting}[caption={ex09-imagem-rotacao.tex},label=ex09:imagem:rotacao] +\begin{figure}[hbp] + \center +\includegraphics[width=0.5\linewidth,angle=30,origin=c]{latex-via-exemplos-fig} +\caption{Imagem PDF} +\end{figure} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} +%\setcounter{chapter}{\value{lstorichapter}} +%\setcounter{section}{\value{lstorisection}} + +As vezes queremos colocar figuras lado a lado para comparação ou para economia de espaços. Para tanto, podemos usar o \texttt{minipage}, como no Exemplo~\ref{ex09:imagem:lado}. + +% \setcounter{lstorichapter}{\value{chapter}} +% \setcounter{lstorisection}{\value{section}} +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex09-01.tex, parte c},label=ex:09-01:c] +\begin{ltxlisting}[caption={ex09-imagem-ĺado.tex},label=ex09:imagem:lado] +\begin{figure}[hbp] +\center +\begin{minipage}{0.4\linewidth} +\center +\includegraphics[width=0.3\linewidth]{latex-via-exemplos-fig} +\caption{lado esquerdo} \label{fig:lado1} +\end{minipage} +\begin{minipage}{0.4\linewidth} +\center +\includegraphics[width=0.3\linewidth,angle=30,origin=c]{latex-via-exemplos-fig} +\caption{lado direito} \label{fig:lado2} +\end{minipage} +\end{figure} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} +%\setcounter{chapter}{\value{lstorichapter}} +%\setcounter{section}{\value{lstorisection}} + +\section{Desenhando sobre a imagem externa} +As vezes queremos desenhar sobre a imagem externa importada no documento tais como fórmulas ou mais alguns detalhes. +Para isso, podemos usar o ambiente gráfico \texttt{picture}\index{picture}. + +No Exemplo~\ref{ex09:imagem:sobreposicao} ilustra a sobreposição para colocar fórmula sobre a imagem externa. + +Note que a imagem foi inserida dentro do ambiente \texttt{picture}. + +Observe como e onde foi usado o \verb|\unitlength|\index{unitlength@\verb+\unitlength+} para permitir ajuste de escala (mudando o valor de \verb|\unitlength|) sem perder a posição de sobreposição já ajustada. + +% \setcounter{lstorichapter}{\value{chapter}} +% \setcounter{lstorisection}{\value{section}} +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex09-04.tex},label=ex:09-04] +\begin{ltxlisting}[caption={ex09-imagem-sobreposicao.tex},label=ex09:imagem:sobreposicao] +\begin{figure}[htbp!] +\center +% +\unitlength=0.45\linewidth % unidade +\begin{picture}(1.0,1.0) % caixa reservada +\put(0,0){\includegraphics[width=\unitlength]{latex-via-exemplos-fig}} +\put(0.35,0.45){\LARGE $e^{\pi i}+1=0$} +\end{picture} +\caption{Técnica de sobreposicao\label{fig:sobreposicao}} +\end{figure} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} +%\setcounter{chapter}{\value{lstorichapter}} +%\setcounter{section}{\value{lstorisection}} + +O ambiente \texttt{picture} é um ambiente gráfico padrão do \LaTeX{} que permite criar ilustrações. +Note que, par criar ilustrações, existem vários pacotes gráficos apropriados, mas se quiser usar o ambiente \texttt{picture}, +lembre-se de colocar o \verb+\usepackage{pict2e}+\index{pict2e} no \texttt{preamble} do documento para eliminar limitações de alguns comandos gráficos. + +O Exemplo~\ref{ex09:picture} ilustra os comandos básicos do ambiente \texttt{picture} com o uso do pacote \texttt{pict2e}. + +% \setcounter{lstorichapter}{\value{chapter}} +% \setcounter{lstorisection}{\value{section}} +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex09-04.tex, parte b},label=ex:09-04:b] +\begin{ltxlisting}[caption={ex09-picture.tex},label=ex09:picture] +\begin{figure}[hbtp!] +\center +\unitlength=1cm % medida da unidade +% \linethickness{1mm} % tome cuidado que e comando, nao a medida +\begin{picture}(5,4)(0,0) +% put coloca o objeto grafico na posição indicada +% line (segmento) e vector (vetor) +% Recebe vetor diretor e comprimento do segmento/vetor +\put(4,3.5){\line(0,1){0.5}} % segmento +\put(5,3){\vector(1,1){0.5}} % vetor +\put(2,2){\circle{1}} % circulo com centro e raio. +\put(1,1){\circle*{1.5}} % circle* é circulo solido +\put(3,2){\oval(3,2)} % oval +\put(3.5,2){\makebox(0,0)[cc]{$A=\pi r^2$}} % Caixa de texto (com formulas) +\put(3,0) { \polyline(0,0)(1,0)(1,1)} % linhas poligonais +\put(5,0) { \polygon(0,0)(1,0)(1,1)} % poligonos +\put(6.5,0) { \polygon*(0,0)(1,0)(1,1)} % poligonos preenchidos +\thicklines % linha mais grossa +\put(4,1){\qbezier(0.0,0.0)(1.3,0.0)(2.0,2.8)} % curva bezier quadratica +\thinlines %linha normal (mais fina) +\put(6,1){\cbezier(0.0,0.0)(1.0,0.0)(1.0,1.0)(2.0,3.0)} +% curva bezier cubica +\end{picture} + +\caption{Ilustração no formato \TeX{}.\label{fig:tex}} +\end{figure} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} +%\setcounter{chapter}{\value{lstorichapter}} +%\setcounter{section}{\value{lstorisection}} + +\section{Caixas gráficas} +O pacote \texttt{graphicx} dispões de vários comandos relacionados com a mudança de tamanho e rotações. +Eles são chamados de caixas gráficas. +Os argumentos não devem conter quebra de parágrafos. Assim, se precisar, deverá usar juntamente com o \texttt{minipage}. + +Para escalar, usa-se o \verb+\scalebox+\index{scalebox@\verb+\scalebox+}. Para indicar o tamanho fixo, usa-se o \verb+\resizebox+\index{resizebox@\verb+\resizebox+}. +Veja o Exemplo~\ref{ex09:scale}. + +% \setcounter{lstorichapter}{\value{chapter}} +% \setcounter{lstorisection}{\value{section}} +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex09-02.tex},label=ex:09-02] +\begin{ltxlisting}[caption={ex09-scale.tex},label=ex09:scale] +Tamanho normal. + +\scalebox{2.5}{Ampliado por 2.5 vezes} + +\scalebox{2}[3]{Ampliado por 2x3 vezes} % 2 no horizontal e 3 em vertical (deforma) + +\resizebox{10cm}{!}{Com 10 cm de comprimento} + +\resizebox{!}{0.5cm}{Com 0.5 cm de altura} + +\resizebox{5cm}{0.75cm}{Com 5cm$\times$0.7cm} % deforma +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} +%\setcounter{chapter}{\value{lstorichapter}} +%\setcounter{section}{\value{lstorisection}} + +O ``!'' no \verb+\resizebox+ especifica que é calculado automaticamente com outra medida. + +A rotação e feito pelo comando \verb+\rotatebox+\index{rotatebox@\verb+\rotatebox+}, onde parâmetro opcional \texttt{origin}\index{rotatebox@\verb+\rotatebox+!origin} permite configurar o centro de rotação, combinando ``l'' (left), ``r'' (right), ``t'' (top), ``b'' (botton) e ``c'' (center). +Veja o Exemplo~\ref{ex09:rotate}. + +% \setcounter{lstorichapter}{\value{chapter}} +% \setcounter{lstorisection}{\value{section}} +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex09-02.tex, parte b},label=ex:09-02:b] +\begin{ltxlisting}[caption={ex09-rotate.tex},label=ex09:rotate] +\rotatebox{30}{Rotacionado} por $30^\circ$. + +\rotatebox[origin=rb]{-30}{Rotacionado} por $-30^\circ$ em torno de lado direito inferior. + +\rotatebox[origin=c]{45}{Rotacionado} por $45^\circ$ em torno de centro. + +\reflectbox{Refletido} está refletido. Mesmo que o \scalebox{-1}[1]{Refletido}. + +\raisebox{\depth}{\scalebox{1}[-1]{Refletido}} está refletido verticalmente. + +\rotatebox[origin=c]{30}{\scalebox{1.5}{Ampliada e rotacionada}} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} +%\setcounter{chapter}{\value{lstorichapter}} +%\setcounter{section}{\value{lstorisection}} + +O \verb+\reflectbox+\index{reflectbox@\verb+\reflectbox+} reflete horizontalmente. +Para refletir verticalmente, use o \verb+\scalebox+, mas precisa ajustar a sua altura. +Aqui foi usado o \verb+\raisebox+\index{raisebox@\verb+\raisebox+}, o que não vamos entrar em detalhes. +Quem interessar, estude sobre caixas no \LaTeX. + +\clearpage\thispagestyle{empty}\cleardoublepage +\chapter{Ajuste das Fontes e de Espaçamento}\label{chap:fontes} +Neste capítulo, veremos o controle das fontes e de espaçamento no \LaTeX. + +\section{Seleção da família de fontes} +Num documento, usa-se vários tipos de fontes. +Por exemplo, o corpo do documento nos livros e artigos costuma ser em romano\index{fonte!romano} (o que tem enfeite nas pontas, denominado de serifa\index{serifa}). +Os títulos dos artigos e livros podem ficar com fontes \texttt{sans serif}\index{sans serif} (sem serifa\index{fonte!sem serifa}). O corpo de slide de apresentação ou poster costuma usar \texttt{sans serif} também. +O código de programa, nome do arquivo, etc que deve ser lido no pé da letra em \texttt{typewriter}\index{typewriter} (mono espaçado\index{fonte!nomo espaçado}). + +Assim, nos documentos científicos, costumam usar três famílias de fontes básicos que são romano (com serifa\index{com serifa}), \texttt{sans serif} (sem serifa) e \texttt{typewriter} (mono espaçado) na qual devem estar em harmonia. +O \LaTeX{} usa a fonte Computer Modern\index{fonte!Computer Modern} por padrão na qual tem essas três fontes que apresentam de forma harmoniosa. +Note que podem trocar para outras fontes, se desejar, mas estas três fontes devem estar em harmonia. + +A família de fontes são selecionadas pelo comando \verb+\textrm+\index{textrm@\verb+\textrm+} ou ambiente \texttt{rmfamily}\index{rmfamily} para romano, o que é padrão para artigos e livros, pelo comando \verb+\textsf+\index{textsf@\verb+\textsf+} ou ambiente \texttt{sffamily}\index{sffamily} para \texttt{sans serif}, e pelo comando \verb+\texttt+\index{texttt@\verb+\texttt+} ou ambiente \texttt{ttfamily}\index{ttfamily} para \texttt{typewriter}. + +Quando aplica a mudança da fonte dentro de um ambiente, o ambiente de ajuste de fontes pode ser usado como comandos. Se não estiver dentro do ambiente e quer usar a versão comando do ambiente, poderá delimitar a sua atuação, delimitando pelos chaves. +Veja Exemplo~\ref{ex10:family}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex03-01.tex, parte b},label=ex:03-01:b] +\begin{ltxlisting}[caption={ex10-family.tex},label=ex10:family] +\textsf{Fontes sem serifa} + +\begin{sffamily} +Texto na fonte sem serifa. +\end{sffamily} + +\textsf{Fontes mono espaçado} + +\begin{ttfamily} +Texto na fonte mono espaçado. +\end{ttfamily} + +\begin{center} +\sffamily +texto centralizado e em sans serif. +\end{center} + +{\ttfamily Texto em nomo espaçado} + +Texto normal. +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + + +\section{Seleção de formas e peso das fontes} + +No \LaTeX, usa-se o comando para trocar forma de fontes, tais como negrito, itálico, etc. +Usar comando adequado no \LaTeX{} é importante para automatizar o processo, não somente para formatação de textos. +O texto enfatizado\index{fonte!enfatizado} é produzido pelo comando \verb+\emph+\index{emph@\verb+\emph+} ou pelo ambiente \texttt{em}\index{em}. +O comando \verb+\emph+ altera entre fonte reto e itálico para destacar palavras tal como termo que está sendo definido. + +O texto em negrito\index{fonte!negrito}, por sua vez, é produzido pelo comando \verb+textbf+\index{textbf!\verb+\textbf+} ou pelo ambiente \texttt{bfseries}\index{bfseries} para dar enfase maior que destaca no meio do texto. +Fonte não negrito\index{fonte!não negrito} que é padrão pode ser especificado pelo comando \verb+\textmd+\index{textmd@\verb+\textmd+} ou ambiente \texttt{mdseries}\index{mdseries}. + +Ainda existem outras formas tal como comando \verb+\textsc+\index{textsc@\verb+\textsc+} e ambiente \texttt{scshape}\index{scshape} para \texttt{small caps}\index{fonte!samll caps}, comandos \verb+\textit+\index{textit@\verb+\textit+} e ambiente \texttt{itshape}\index{itshape} para itálicos\index{fonte!itálico}. + +Note que o formato normal\index{fonte!formato normal} é \verb+\textup+\index{textup@\verb+\textup+} ou ambiente \texttt{upshape}\index{upshape}. +Veja Exemplo~\ref{ex10:series}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex03-01.tex, parte c},label=ex:03-01:c] +\begin{ltxlisting}[caption={ex10-series.tex},label=ex10:series] +\textbf{Texto em negrito} + +\begin{bfseries} +Negrito como ambiente +\end{bfseries} + +\begin{em} +Parágrafo enfatizado. \emph{Texto enfatizado dentro dele} +\end{em} + +\textsc{Small Caps} + +\begin{center} +\bfseries +Negrito e centralizado. +\textmd{Normal} +\end{center} + +{\scshape Small Caps dentro dos chaves} + +Texto normal +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +Note que os comandos antigos\index{fonte!comandos antigos} \verb+\rm+, \verb+\tt+, \verb+\bf+, \verb+\sf+, \verb+\it+ e \verb+\sc+ para ajuste de fontes não devem ser usados, pois não podem ser combinados (por exemplo, itálico negrito), além ter de problemas de ajustes de espaçamentos (como a necessidade de correção de itálico). + +Note que, para restaurar a fonte padrão\index{fonte!restaurar padrão}, basta usar o ambiente \texttt{normalfont}\index{normalfont} (que tem versão comando dele também). + +\section{Tamanho das fontes} + +Tamanho das fontes\index{fonte!tamanho} são especificados também pelos comandos e o \LaTeX{} efetua ajuste automático em relação ao tamanho padrão. + +O tamanho de menor para maior são definidos pelo ambientes + +\texttt{tiny}: {\tiny tiny\index{tiny}} + +\texttt{scriptsize}: {\scriptsize scriptsize\index{scriptsize}} + +\texttt{footnotesize}: {\footnotesize footnotesize} + +\texttt{normalsize}: {\normalsize normalsize\index{normalsize}} + +\texttt{large}: {\large large\index{large}} + +\texttt{Large}: {\Large Large\index{Large}} + +\texttt{LARGE}: {\LARGE LARGE\index{LARGE}} + +\texttt{huge}: {\huge huge\index{huge}} + +\texttt{Huge}: {\Huge Huge\index{Huge}} + +Lembrando que existem comandos correspondentes a cada um dos ambientes, similar a outros ambientes de fontes. +Veja Exemplo~\ref{ex10:size}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex03-01.tex, parte d},label=ex:03-01:d] +\begin{ltxlisting}[caption={ex10-size.tex},label=ex10:size] +\begin{Large} +Letra grande (2 escalas acima) +\end{Large} + +\begin{em} +\small Parágrafo enfatizado com letra pequena (uma escala abaixo) +\end{em} + +{\footnotesize Fonte 2 escalas abaixo} + +Texto normal +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +\section{Ajuste de fontes no modo matemático}\label{sec:fonte:matematica} +No \LaTeX, as especificações das fontes no texto e na fórmula matemática usam os comandos diferentes. +A especificação da fonte mo modo matemático corresponde ao +\verb|\text??{}| são \verb|\math??{}|: +\verb|\mathrm{}|\index{mathrm@\verb+\mathrm+}, \verb|\mathsf{}|\index{mathsf@\verb+\mathsf+}, \verb|\mathtt{}|\index{mathtt@\verb+\mathtt+}, \verb|\mathbf{}|\index{mathbf@\verb+\mathbf+}, \verb|\mathit{}|\index{mathit@\verb+\mathit+}, \verb|\mathnormal{}|\index{mathnormal@\verb+\mathnormal+}, \verb|\mathcal{}|\index{mathcal@\verb+\mathcal+}. + +O comando \verb|\mathcal{}|\index{mathcal@\verb+\mathcal+} que não tem correspondente no modo texto, usa a fonte caligráfica, mas somente em letras maiúsculas. + +Os comandos acima não funcionam para símbolos e eles não podem ser combinados. +Por exemplo, \verb|\mathbf{\matrm{A}}| é mesmo que \verb|\mathrm{A}|. + +Assim, \verb+\mathbf+ não é apropriado para escrever fórmulas em negrito. Portanto, use \verb+\bm+\index{bm@\verb+\bm+} do pacote \texttt{bm}\index{bm} para converter parte da fórmula e negrito. +Note que, quando usa em conjunto com o \texttt{amsmath}, pode precisar colocar chaves duplas para prevenir erros em \verb+\bm+ (veja Exemplo~\ref{ex10:fontes:mat}). + +O pacote \texttt{amssymb} dispõe de mais dois fontes bastante usados na matemática que são \verb+\mathfrak+\index{mathfrak@\verb+\mathfrak+} e \verb+\mathbb+\index{mathbb@\verb+\mathbb+}. +Em geral, usa-se os pacotes \texttt{amsmath} e \texttt{amssymb} quando produz textos matemáticos. +Então acrescente \verb+\usepackage{amssymb,amsmath}+ +no \texttt{preamble} do documento com no Exemplo~\ref{ex10:fontes:mat}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex03-02.tex, parte b},label=ex:03-02:b] +\begin{ltxlisting}[caption={ex10-fontes-mat.tex},label=ex10:fontes:mat] +\documentclass[12pt,a4paper]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage[brazil]{babel} +\usepackage{amssymb,amsmath} +\usepackage{bm} +\begin{document} +\[ \forall x \in \mathbb{R},\mathrm{sen}^2(x)+\cos^2(x)=1 \] +{\bfseries Para $\bm{{i=0}}$}: Por definição, $0!=1$. +\end{document} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +Note que nomes (ou abreviações) das funções devem estar em fonte romano reto. +Assim, $\mathrm{sen}$ foi produzido, usando \texttt{mathrm}. + +Para não precisar especificar \verb|\mathrm{}|, existem comandos para nomes\index{comandos!nome das funções} de maioria das funções matemáticas mais conhecidas. + +Nome das funções pré-definidas: + +$\arccos$\index{arccos@\verb+\arccos+}, $\arcsin$\index{arcsin@\verb+\arcsin+}, $\arctan$\index{arctan@\verb+\arctan+}, $\arg$\index{arg@\verb+\arg+}, $\bmod$\index{bmod@\verb+\bmod+}, $\cos$\index{cos@\verb+\cos+}, $\cosh$\index{cosh@\verb+\cosh+}, $\cot$\index{cot@\verb+\cot+}, $\coth$\index{coth@\verb+\coth+}, $\csc$\index{csc@\verb+\csc+}, $\deg$\index{deg@\verb+\deg+}, $\det$\index{det@\verb+\det+}, $\dim$\index{dim@\verb+\dim+}, $\exp$\index{exp@\verb+\exp+}, $\gcd$\index{gcd@\verb+\gcd+}, $\hom$\index{hom@\verb+\hom+}, $\inf$\index{inf@\verb+\inf+}, $\ker$\index{ker@\verb+\ker+}, $\lg$\index{lg@\verb+\lg+}, $\lim$\index{lim@\verb+\lim+}, $\liminf$\index{liminf@\verb+\liminf+}, $\limsup$\index{limsup@\verb+\limsup+}, $\ln$\index{ln@\verb+\ln+}, $\log$\index{log@\verb+\log+}, $\max$\index{max@\verb+\max+}, $\min$\index{min@\verb+\min+}, $\sec$\index{sec@\verb+\sec+}, $\sin$\index{sin@\verb+\sin+}, $\sinh$\index{sinh@\verb+\sinh+}, $\sup$\index{sup@\verb+\sup+}, $\tan$\index{tan@\verb+\tan+}, $\tanh$\index{tanh@\verb+\tanh+}, $\Pr$\index{Pr@\verb+\Pr+}. + +Note que o \emph{seno} em inglês é \emph{sine}, abreviado para \texttt{sin} que não coincide com o termo usado no Brasil que é \texttt{sen}. +Neste caso, costuma definir o comando para não ficar digitando \texttt{mathrm} toda hora. +De forma análoga, quando o comando produz nome não usual, como no caso de tangente que é $\tan$ no \LaTeX, mas costuma usar $\mathrm{tg}$ no Brasil, podem ser redefinidos. +A definição e redefinição de comandos estão na Seção~\ref{sec:comandos} do Capitulo~\ref{chap:novo:comando}. + +\clearpage\thispagestyle{empty}\cleardoublepage +\chapter{Referências Bibliográficas e Índice Remissivo} +Veremos como produzir índice remissivo e referências bibliográficas no \LaTeX. + +\section{Referências bibliográficas} +Uma referência bibliográfica\index{referẽncia bibliográfica} é uma lista de referências externas usadas no trabalho. +Esta lista é definido pelo ambiente \texttt{thebibliography}\index{thebibliography} cuja argumento é o elemento com maior largura, para ajustar alinhamento de seus itens. +Cada item da referência é especificado pelo comando \verb+\bibitem+\index{bibitem@\verb+\bibitem+} cuja argumento obrigatório é uma chave e argumento opcional é rótulo a ser impresso no item (se for omitido, será usado números). +Depois segue os dados da referência bibliográficas como devem ser impressas. +Em geral, esta lista será colocado no final do documento (se existir o índice remissivo, será antes do índice remissivo). +No Exemplo~\ref{ex11:bib}, o argumento \texttt{OPHS15} do \texttt{thebibliography} será usado para medir o espaço deixado à esquerda dos itens. +Além disso, cada item tem o rótulo (argumento opcional) a ser impresso como nome. +Depois vem a chave que será usado no documento para citar o item especifico. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex07-01.tex},label=ex:07-01,preset={\let\addcontentsline\emptyaddcontentsline}] +\begin{ltxlisting}[caption={ex11-bib.tex},label=ex11:bib] +\begin{thebibliography}{OPHS15} +\bibitem[GMS04]{Goossens:2004} + Michel Goossens and Frank Mittelbach + \emph{The {\LaTeX} companion (second edition)}, Adilson--Wesley, 2004. +\bibitem[Tea00]{IndianTUG:00} + Tutorial Team, \emph{Online tutorials on {\LaTeX}}, + Indian {\TeX} User Group, 2000. +\bibitem[LL94]{Lamport:1994} + Leslie Lamport, + \emph{\LaTeX: A Document Preparation System (2nd Edition)}, Addison-Wesley Professional, 1994. + \bibitem[OPHS15]{Oetiker:2015} + Tobias Oetiker et. al., + \emph{The Not So Short Introduction to \emph{\LaTeXe}}, URL: https://ctan.org/tex-archive/info/lshort/english/, +2015. +\end{thebibliography} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +No texto, uma citação da referência bibliográfica é inserida pelo comando \verb+cite{chave}+\index{cite@\verb+\cite+} onde \texttt{chave} é a chave colocado no \verb+\bibitem+. + +Se for citar mais de um item, coloque as chaves separadas pela virgula. Também poderá colocar informações adicionais como parâmetro opcional do \verb+\cite+. +Veja Exemplo~\ref{ex11:cite}. + +\begin{singlespacing} +%\begin{lstlisting}[pos=b,caption={ex07-01.tex, parte b},label=ex:07-01:b] +\begin{lstlisting}[caption={ex11-cite.tex},label=ex11:cite] +Exemplo de referência bibliográfica (veja~\cite{Lamport:1994} e \cite{Oetiker:2015}). + +Para exemplos usando o BibTeX, poderá consultar +\cite{IndianTUG:00, Goossens:2004}. + +Para recursos avançados de BibTeX, veja o +\cite[Cap.~13]{Goossens:2004}. +\end{lstlisting} +\end{singlespacing} + +%\noindent +%\fbox{\begin{minipage}{\linewidth} +%\begin{singlespacing} +\begin{ltxlistingout} +%Exemplo de referência bibliográfica (veja~\cite{Lamport:1994} e \cite{Oetiker:2015}). +Exemplo de referência bibliográfica (veja~[LL94] e [OPHS15]). + +%Para exemplos usando o BibTeX, poderá consultar \cite{IndianTUG:00, Goossens:2004}. +Para exemplos usando o BibTeX, poderá consultar [Tea00, GMS04]. + +%Para recursos avançados de BibTeX, veja o \cite[Cap.~13]{Goossens:2004}. +Para recursos avançados de BibTeX, veja o +[GMS04, Cap.~13]. +\end{ltxlistingout} +%\end{singlespacing} +%\end{minipage}} + +\section{Usando o \BibTeX} + +Checar qual das referências foram usadas e formatar uniformemente de acordo com as exigências do editor é uma tarefa difícil. +Para automatizar este serviço, podemos usar o \BibTeX{}\index{BibTeX} que é uma ferramenta especialmente desenvolvida para manipular referências bibliográficas. +Os editores costumam deixar um arquivo de estilo próprio para \BibTeX{} e usando ele, o \BibTeX{} formatará automaticamente as referências bibliográficas de acordo. +Outra coisa importante que o \BibTeX{} faz é checar quais dos itens foram usados e imprimir somente as referencias citadas no texto. + +Para usar o \BibTeX, prepara o arquivo de referencia bibliográfica\index{arquivo!referências bibliográficas} separado com extensão \texttt{.bib} que contém informações das referências. +Em geral, costumamos usar os aplicativos gráficos tal como aplicativo gratuito e multi plataforma \texttt{jabref}\index{jabref} (\url{http://www.jabref.org/}) para editar o arquivo de \BibTeX, mas também pode ser editado manualmente. + +Aqui, vamos ver como preparar manualmente o arquivo \texttt{.bib}. +Veja o Exemplo~\ref{ex11:bibtex:bib} para ver como deve ficar o arquivo \texttt{.bib}. +\begin{singlespacing} +%\begin{lstlisting}[language=BibTeX,pos=b,caption={ex07-02.bib},label=ex:07-02:bib] +\begin{lstlisting}[language=BibTeX,caption={ex11-bibtex.bib},label=ex11:bibtex:bib] +@string{AW="Adilson--Wesley"} +@string{TUG="{\TeX{}} User Group"} + +@book{Lamport:1994, +author={Leslie Lamport}, +title="{\LaTeX{}}, A Document Preparation System (2nd Edition)", +publisher=AW, +address ={Reading, MA}, +year=1994 +} + +@book{Goossens:2004, +author={Michel Goossens and Frank Mittelbach}, +title="The {\LaTeX} companion (second edition)", +publisher=AW, +address ={Reading, MA}, +year=2004 +} + +@book{Oeticker:2015, +author={Tobians Oeticker and Hubert Partl and Irene Hyna and Elisabeth Schlegl}, +title="The Not So Short Introduction to {\LaTeXe{}}", +publisher=CTAN, +note={https://ctan.org/tex-archive/info/lshort/english/}, +year=2015 +} + +@book{IndianTUG:00, +author={Tutorial Team}, +title="Online Tutorials on {\LaTeX{}}", +publisher="Indian " # TUG, +note = {http://www.tug.org/tutorials/tugindia/}, +year=2000 +} + +@article{Mertz:2009, +author={Andrew Mertz and William Slough}, +title={A TikZ tutorial: Generating graphics in the +spirit of {\TeX}}, +journal=TUGboat, +note={http://www.tug.org/TUGboat/tb30-2/tb95mertz.pdf} +volume=30, +number=2, +year=2009 +} +\end{lstlisting} +\end{singlespacing} + +O comando de \BibTeX{} inicia com ``@''\index{BibTeX!arroba@\arrobasymbforindex} seguido de nome e seus dados entre chaves. +Os dados são listas separados pela virgula na forma forma ``chave=dado'', onde dado pode ser delimitado por aspas ou chaves. + +\texttt{@string}\index{BibTeX!arrogastring@{\arrobasymbforindex string}} permite definir abreviaturas. +No começo do arquivo, define abreviatura \texttt{AW} para ``Adilson--Wesley'' e \texttt{TUG} para ``{\TeX{}} User Group'' para facilitar a digitação de dados. +Note que, comando de \TeX{} devem ficar delimitados pelas chaves no arquivo de BibTeX. + +Depois encontra o \texttt{@book}\index{BibTeX!arrobabook@{\arrobasymbforindex book}} que especifica que é dado de um livro. +Entre chaves, estão os dados do livro tais como título, autor, etc, onde cada campo é separado da outra pela virgula e dados do campo são delimitados pelos chaves ou aspas. +Note que o primeiro elemento de \texttt{@book} é uma chave a ser usado dentro do documento pelo comando \verb+\cite+ e é único que não é da forma \texttt{campo = dado do campo} +Note que, tanto aspas como chaves podem ser usados para delimitar dados do campo, mas se dado for uma única palavra como o ano, não precisa do delimitador. + +Também lembrar novamente que, comandos de \TeX{} devem ficar delimitados por chaves, o que indica ao \BibTeX{} para não alterar esta parte (como converter entre maiúsculo e minúsculo). +Note o uso da abreviatura \texttt{AW} em alguns pontos do documento (sem colocar delimitadores). Esta abreviatura foi definido no começo do arquivo e será substituido automaticamente pelo seu valor ``Adilson--Wesley'' pelo \BibTeX. + +No \texttt{publisher="Indian " \# TUG}, ``\#''\index{BibTeX!\#} faz a concatenação de dois strings \verb*+Indian + e o string\texttt{TUG} que é \verb+{\TeX{}} User Group+. + +Tendo o arquivo \texttt{.bib} pronto, efetuamos as citações +como no caso anterior. + +Agora, no final do arquivo, onde colocamos o ambiente \texttt{thebibliography}, substituímos por + +\begin{singlespacing} +\begin{lstlisting} +\bibliographystyle{[estilo bib]} +\bibliography{[arquivo bib]} +\end{lstlisting} +\end{singlespacing} + +onde \texttt{[estilo bib]} é o estilo usado para formatar as referências bibliográficas e \texttt{[arquivo bib]} é o nome do arquivo de \BibTeX{} (extensão \verb+bib+) sem extensão. Quando tiver mais de um arquivo, separe os nomes pela vírgula. + +Agora execute o \LaTeX, \BibTeX{} e \LaTeX{} novamente. +Em geral, os editores especializados para \LaTeX{} tem os botões ou menus para rodar o \BibTeX, além dos botões de compilar (executar o \LaTeX). + +Ao executar \BibTeX, será gerado a saída das referências bibliográficas somente com itens citados. +Por exemplo, para as citações do Exemplo~\ref{ex11:cite}, o artigo com chave \texttt{Mertz:2009} será ignorado por não estar citados. + +Para mudar a formatação das referências, é só alterar o estilo em \verb+\bibliographystyle+\index{bibliographystyle@\verb+\bibliographystyle+} e executar o \BibTeX e \LaTeX{} novamente. +Os estilos básicos são: \texttt{plain}\index{BibTeX!plain} (rótulo numérico), \texttt{unsrt}\index{BibTeX!unsrt} (similar a \texttt{plain}, mas sem ordenar -- na ordem que foi citado), \texttt{alpha}\index{BibTeX!alpha} (rótulo pelo sobrenome e ano), \texttt{abbrv}\index{BibTeX!abbrv} (similar a \texttt{plain}, mas mais compacto), \texttt{amsplain}\index{BibTeX!amsplain} (estilo \texttt{plain} do AMS), \texttt{amsalpha}\index{BibTeX!amsalpha} (estilo \texttt{alpha} do AMS). + +Além desses, existem vários outros estilos, dependendo da instalação de cada sistema \TeX{} em uso. + +Se o editor dispõe de arquivos de estilo para \BibTeX{} (com extensão \texttt{bst}\index{arquivo!bst}), deixe este arquivo junto com arquivo \texttt{tex} e no \verb+\bibliographystyle+, passe o nome do arquivo \texttt{.bst} sem a extensão. +Se arquivo é \texttt{meuart.bst}, o estilo é \texttt{meuart}. + +Uma observação importante é que o \BibTeX{} não suporta a adequadamente a acentuação direta ainda. +Assim, deverá acentuar no modo \TeX. +Lembre-se que a acentuação no modo \TeX{} precisa estar entre chaves para \BibTeX{} não tentar processar esta parte. + +Quando o editor exige um padrão diferente do disponível e não fornece o arquivo de estilo para \BibTeX, podemos contornar o problema da seguinte forma. +Primeiro termine o artigo ou livro com citações necessárias e usando um estilo mais próximo do exigido. +Depois rode o \LaTeX{} e \BibTeX. O \BibTeX{} gerará um arquivo com extensão \texttt{bbl}\index{arquivo!bbl}, como mesmo nome do arquivo \texttt{tex}. Este arquivo \texttt{.bbl} contém o ambiente \texttt{thebibliography} com itens de bibliografia já formatada. Copie ele para documento original onde está o +\begin{verbatim} +\bibliographystyle{[estilo bib]} +\bibliography{[arquivo bib]} +\end{verbatim} +e efetue alterações anualmente. + +Não esqueça de comentar o +\begin{verbatim} +\bibliographystyle{[estilo bib]} +\bibliography{[arquivo bib]} +\end{verbatim} + +Além de \texttt{@book} (livro), existem muitas especificações de documentos tais como \texttt{@article}\index{BibTeX!arrobaarticle@{\arrobasymbforindex article}} (artigo), \texttt{@manual}\index{BibTeX!arrobamanual@{\arrobasymbforindex manual}} (documentação técnica), \texttt{@phdthesis}\index{BibTeX!arrobaphdthesis@{\arrobasymbforindex phdthesis}} (tese de doutorado), etc, uma para cada categoria. Se não enquadrar em nenhuma das categorias disponíveis, use o \texttt{@misc}\index{BibTeX!arrobamisc@{\arrobasymbforindex misc}} (diversos). + +O texto sem estar com especificação que inicia com ``@'' será ignorado pelo BibTeX e funciona como comentário\index{BibTeX!comentário}. +Mas existe o especificador \texttt{@comment}\index{BibTeX!arrobacomment@{\arrobasymbforindex comment}} especial para inserir comentários\index{BibTeX!comentário} para fins de organização. + +Como existem muitas categorias e cada categoria tem campos diferentes a ser preenchidos, editar o arquivo de BibTeX manualmente não é muito simples. +Assim, costumamos usar os aplicativos próprios para isso. +Um desses aplicativos é o \texttt{jabref}\index{jabref} (\url{http://www.jabref.org/}) que funciona em quase toda plataforma e é gratuito. + +\section{Índice remissivo} + +Para usar o índice remissivo, usa-se o pacote \texttt{makeidx}\index{makeidx} e o comando \verb+\makeindex+\index{makeindex@\verb+\makeindex+} no \texttt{preamble} do documento para ativar o seu uso. + +Para acrescentar itens no índice remissivo\index{indice@{indice} remissivo}, usa-se o comando \verb+\index{}+\index{index@\verb+\index+}, mas lembre-se de não colocar espaços entre palavra referida e o comando. +Para colocar índice remissivo com sub-entrada\index{indice@{índice} remissivo!sub-entrada}, usa-se o ``!'' para separar entrada e sub-entrada, mas evite espaços nos lados de ``!'' (qualquer espaço extra pode causar confusões na organização do índice remissivo). + +As vezes, é necessário usar uma ``chave'' para classificar os itens\index{indice@{índice} remissivo!com chave}. + +Isto ocorre quando usamos símbolos matemáticos, aspas, ou outros caracteres especiais, formatação de caracteres, etc. +Sem a ``chave'' de classificação, \texttt{makeindex} pode classificar usando o que está escrito, o que nem sempre corresponde a posição correta. +Para resolver este problema, usa-se o \verb+\index{chave@item}+. +Por exemplo +\begin{singlespacing} +\begin{lstlisting} +Ps ítens em negrito\index{item em negrito@\textbf{ítem em negrito}}, +itens com aspas\index{item com aspas@``ítem com aspas''} e símbolos \index{símbolos}, etc podem ser colocados com ordenação correta. +\end{lstlisting} +\end{singlespacing} +inserem entradas em negrito e item com aspas classificado corretamente. +Lembre também que as letras acentuadas costumam vir na posição diferente das não acentuadas. +Neste caso também poderá usar a chave para colocar na posição correta. +Veja o Exemplo~\ref{ex11:index}. + +\begin{singlespacing} +%\begin{lstlisting}[pos=b,caption={ex05-02.tex},label=ex:05-02] +\begin{lstlisting}[caption={ex11-index.tex},label=ex11:index] +Podemos usar índice remissivo\index{índice remissivo} com sub-entrada\index{índice remissivo!sub-entrada}. +Também podemos usar ``chave'' para classificar os itens, como itens em negrito\index{item em negrito@\textbf{item em negrito}}, itens com aspas\index{item com aspas@``item com aspas''} e símbolos como $\alpha$\index{alfa@$\alpha$}. +Também podemos usar item e enumeração em negrito\index{item e enumeração em negrito@\textbf{item e enumeração em negrito}|textbf} +\printindex % colocar indice remissivo (glossário) aqui. +\end{lstlisting} +\end{singlespacing} + +No corpo do documento, terá nenhuma diferença visual em ter o \verb+\index{}+ e logo, a sua saída foi omitida. + +Podemos especificar sub-entrada com chaves como em + +\begin{singlespacing} +\begin{lstlisting} +itens em negrito com sub-entrada\index{item@\textbf{item}!\textbf{em negrito}!\textbf{com sub-entrada}}. +\end{lstlisting} +\end{singlespacing} + +Observe a ordem que usa o ``@'' e ``!'' na especificação de itens com chave e subentrada. + +Para indicar a ocorrência num trecho\index{indice remmissivo!trecho}, usa-se o \verb+\index{item|(+ para iniciar e \verb+\index{item|)+ para finalizar. + +Quando um ítem referê-se ao outro, usa-se +o \verb+\index{ítem|see{referencias}}+ com em +\begin{lstlisting} +grossário\index{grossário|see{índice remissivo}}. +\end{lstlisting} + +Para mudar a fonte usada na enumeração da página, coloque a especificação após ``|'' ou ``|('' dependendo de ser página ou trecho como em +\begin{lstlisting} +Índice com paginação em negrito\index{item e enumeração em negrito@\textbf{ítem e enumeração em negrito}|textbf}. +\end{lstlisting} + +Para colocar o índice remissivo gerado, +usa-se o comando \verb+\printindex+\index{printindex!\verb+\printindex+}. + +Finalmente, para produzir o índice remissivo, deverá executar \LaTeX, \verb+makeindex+\index{makeindex} e \LaTeX{} novamente. +Os editores especializados para \LaTeX{} costuma vir com botão ou menu para chamar o \texttt{makeindex}. + +O índice remissivo do Exemplo~\ref{ex11:index} ficaria como segue + +%\begin{singlespacing} +%\fbox{\begin{minipage}{\linewidth} +\begin{ltxlistingout} +\chapter*{Índice Remissivo} +\noindent índice remissivo, 1 + +\hspace{2em} sub-entrada, 1 + + \medskip + +\noindent $\alpha$, 1 + + \medskip + +\noindent ``item com aspas'', 1 + +\noindent \textbf{item em negrito}, 1 + +\noindent \textbf{item e enumeração em negrito}, \textbf{1} +\end{ltxlistingout} +%\end{minipage}} +%\end{singlespacing} + +Note que @, !, | e " tem significados na entrada de índice remissivo. +Para colocar estes caracteres na entrada de índice remissivo, coloque " antes dele. +Por exemplo, \verb+\index{"@author}+ insere ``@author'' na entrada de índice remissivo. + +\clearpage\thispagestyle{empty}\cleardoublepage +\chapter{Medidas e Contadores}\label{chap:medidas:contadores} + +\section{Unidade de medidas e espaçamentos} + +As vezes o espaçamento ajustado automaticamente não está bom e queremos fazer pequenos ajustes. + +Para aumentar espaçamento entre parágrafos em um determinado ponto, como entre texto e equações altas, poderá usar o \verb+\smallskip+\index{amallskip@\verb+\smallskip+}, \verb+\medskip+\index{medskip@\verb+\medskip+} e \verb+\bigskip+\index{bigskip@\verb+\bigskip+} para ter espaçamentos maior que o padrão. +Note que, se quer ter espaçamento maior entre texto e equações em todo o documento, deverá efetuar ajustes de parâmetros \verb+\abovedisplayskip+\index{abovedisplayskip@\verb+\abovedisplayskip+} e \verb+\belowdisplayskip+\index{belowdisplayskip@\verb+\belowdisplayskip+}. + +Para espaço horizontal e vertical, usa-se o \verb+\hspace{medida}+\index{hspace@\verb+\haspace+} e \verb+\vspace{medida}+\index{vspace@\verb+\vspace+} respectivamente. +Caso estiver inserindo o espaço vertical no começo das páginas, ou espaço horizontal no começo das linhas, use a versão com ``*'' \verb+\hspace*{medida}+\index{hspace*@\verb+\hspace*+} e \verb+\vspace*{medida}+\index{vspace*@\verb+\vspace*+}. + +Medidas comumente usados são: + +\begin{description} +\item[pt] (point - unidade gráfica) = $\frac{1}{72.27}$in (polegada) ou $0.351$mm +\item[mm] (milimetro) = $2.845$pt +\item[pc] (pica) = $12$pt ou $4.218$mm +\item[cm] (centímetro) = $2.371$pc +\item[in] (polegada) = $25.4$mm ou $72.27$pt ou $6.022$pc +\item[ex] altura da letra ``x'' minusculo da fonte corrente +\item[em] largura da letra ``M'' maiúsculo da fonte corrente +\item[mu] (math unit) = $\frac{1}{18}$em +\item[\texttt{\textbackslash stretch\{peso\}}] espaço esticável com peso especificado. +\end{description} + +Existem ainda várias ouras medidas menos usadas que foram omitidos aqui. + +O \verb+\stretch{peso}+\index{stretch@\verb+\stretch+} produz medida que preenche o espaço. +Existem alguns comandos deste tipo que são úteis: \verb+\hfill+\index{hfill@\verb+\hfill+} (equivale a \verb+\hspace{stretch{1}}+), +\verb+\vfill+\index{vfill@\verb+\vfill+} (equivale a \verb+\vspace{stretch{1}}+), +\verb+\hrulefill+\index{hrulefill@\verb+\hrulefill+} (similar a \verb+\hfill+, mas preenche com linha), +\verb+\dotfill+\index{dotfill@\verb+\dotfill+} (similar a \verb+\hfill+, mas preenche com pontos). + +Ainda existem comandos para inserir pequenos espaços, que são +\verb|\quad|\index{quad@\verb+\quad+} (insere espaço de $1$em = $18$mu), +\verb|\qquad|\index{qquad@\verb+\qquad+} (insere espaço de $2$\texttt{quad}=$2$em), +\verb|\enspace|\index{enspace@\verb+\enspace+} ou \verb|\enskip|\index{enskip@\verb+\enskip+} (insere espaço de $\frac{1}{2}$\texttt{quad}). +Estes comandos costumam ser usados para inserir pequenos espaçamentos para melhora a aparência das fórmulas matemáticas. +No modo matemático, ainda existem comandos de inserção de espaços menores que são +\begin{description} +\item[\textbackslash,]\index{,@\verb+\,+} ($\frac{3}{18}$\texttt{quad} = $3$mu), +\item[\textbackslash:]\index{:@\verb+\:+} ($\frac{4}{18}$\texttt{quad} = $4$mu), +\item[\textbackslash;]\index{;@\verb+\;+} ($\frac{5}{18}$\texttt{quad} = $5$mu), +\item[\textbackslash!]\index{"!@{\textbackslash\exclsymbforindex}} ($\frac{-3}{18}$\texttt{quad} = $-3$mu). +\end{description} + +Veja Exemplo~\ref{ex12:espacos}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex03-03.tex},label=ex:03-03] +\begin{ltxlisting}[caption={ex12-espacos.tex},label=ex12:espacos] +palavra a esquerda \hfill palavra a direita. + +palavra a esquerda \hrulefill palavra a direita. + +palavra a esquerda \dotfill palavra a direita. + +primeiro\hfill segundo\hrulefill\hrulefill terceiro\dotfill\dotfill\dotfill quarto + +\bigskip + +$x \in \mathrm{I\!R}, \enspace x>0$. +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +Nota: o \verb+\mathbf{R}+ construido acima é apenas como ilustração. +Deverá usar a fonte apropriada tal como \verb+\mathbb+ do AMS. + +Outra coisa que as vezes usamos para alinhamento dos elementos de fórmulas é o comando \verb+\phantom+\index{phantom@\verb+\phantom+} que, em vez de produzir elementos da fórmula, reserva o espaço usado por ele. +Por exemplo, $\Gamma_{ij}^{\phantom{ij}k}$ e $\Gamma_{ij}^k$. + +\section[Medidas]{Medidas prédefinidas ou definidos pelo usuário}\label{sec:medidas} +Existem algumas medidas pré-definidas como comandos, relacionadas à configuração das páginas e similares que costuma ser usados com certa frequência. Aqui, vamos citar algumas delas. +Para referenciar, coloque ``\textbackslash'' antes dele, para ficar como comandos +\begin{description} +\item[\textbackslash textwidth]\index{textwidth@\verb+\textwidht+} Largura de texto atual. +\item[\textbackslash linewidth]\index{linewidth@\verb+\linewidth+} largura da linha atual. Por exemplo, dentro da lista, será menor que o \texttt{textwidth}. +\item[\textbackslash columnwidth]\index{columnwidth@\verb+\columnwidth+} largura da coluna. Se for em uma coluna, coinside com \texttt{textwidth}. +\item[\textbackslash columnsep]\index{columnsep@\verb+\columnsep+} distãncia entre colunas no modo multi colunas. +\item[\textbackslash columnseprule]\index{columnseprle@\verb+\columnseprule+} largura da linha que separa colunas no modo multi colunas (\verb+0pt+ para desabilitar). +\item[\textbackslash textheight]\index{textheight@\verb+\textheight+} altura do texto atual +\item[\textbackslash parindent]\index{parindent@\verb+\parindent+} indentação (quanto deixa no lado esquerdo) do parágrafo. +\item[\textbackslash parskip]\index{parskip@\verb+\parskip+} Quanto deixa de espaço antes do parágrafo. +\item[\textbackslash paperwidth]\index{paperwidth@\verb+\paperwidth+} largura do papel. +\item[\textbackslash paperheight]\index{paperheight@\verb+\paperheight+} altura do papel. +\item[\textbackslash unitlength]\index{unitlength@\verb+\unitlength+} medida de unidade usado no ambiente \texttt{picture}. +\end{description} + +Dentro do \texttt{minipage}, \verb+\textwidth+, \verb+\linewidth+ e \verb+\columnwidth+ assumem a largura do \texttt{minipage}, mas no \verb+\parbox+, somente \verb+\linewidth+ assumirá a largura da caixa. + +Para imprimir estas medidas, coloque o comando \verb+\the+\index{the@\verb+\the+} antes do comando de medidas. +Por exemplo, para imprimir o valor de \verb+\textwidth+, use \verb+\the\textwidth+. + +Para definir uma nova medida, usa-se o comando \verb+\newlength{\minhamedida}+\index{newlength@\verb+\newlength+}. +Este comando criará a medida \verb+\minhamedida+. +Para definir tamanho da medida, use \verb+\setlength{\minhamedida}{medida}+\index{setlength@\verb+\setlength+} onde \texttt{medida} é a medida da \verb+\minhamedida+. + +O valor da medida pode ser configurado a partir de \texttt{box} (caixa) existente (como texto, fórmulas, etc). +Uma caixa (de elemento) tem altura (\texttt{height}), largura (\texttt{width}) e a distância da parte inferior até a linha base (\texttt{depth}). + +\verb+\settoheight{\minhamedida}{}+\index{settoheight@\verb+\settoheigth+}, \verb+\settowidth{\minhamedida}{}+\index{settowidth@\verb+\settowidth+} e \verb+\settodepth{\minhamedida}{}+\index{settodepth@\verb+\settodepth+} configuram para essas medidas correspondentes ao seu parâmetro. + +Note que, pela facilidade, as vezes usamos o modo \TeX{} para configurar as medidas como em +\verb+\minhamedida=3.0cm+ + Para facilitar os cálculos das medidas, normalmente usa-se o pacote \texttt{calc}. + + O pacote \texttt{calc}, além de permitir calcular medidas com facilidade, ainda acrescentam alguns novos comandos tais como +\verb+\settototalheight{\algumamedida}{}+\index{settototalheight@\verb+\settototalheight+} que configura para \texttt{width+depth} e +\verb+\widthof{}+\index{widthof@\verb+\widthof+}, \verb+\heightof{}+\index{heightof@\verb+\heightof+}, \verb+\depthof{}+\index{depthof@\verb+\depthof+} e \verb+\totalheightof{}+\index{totalheightof@\verb+\totalheightof+} +que retornam \texttt{width}, \texttt{height}, \texttt{depth}, e \texttt{width+depth}, respectivamente. + +\section{Contadores} + +\LaTeX{} usa diversos contadores para efetuar enumeração automática , tais como páginas, equações enumeradas, capítulos e seções, figuras, etc. + +Estes contadores podem ser controladas, tanto na contagem como na sua aparências. + +Em geral, o costume é nomear contador com mesmo nome do ambiente e o que precede \verb+\the+ será usado para imprimir o seu valor. +Por exemplo, a impressão de enumeração da página usa o \verb+\thepage+\index{thepage@\verb+\thepage+} e enumeração do capítulo usa \verb+\thechapter+\index{thechapter@\verb+\thechapter+} e assim por diante. + +Os principais contadores pré definidos no \LaTeX{} são: +\texttt{part}, \texttt{chapter}, +\texttt{section}, \texttt{subsection}, \texttt{subsubsection}, +\texttt{paragraph}, \texttt{subparagraph}, +\texttt{page}, \texttt{figure}, \texttt{table}, +\texttt{footnote}, \texttt{mpfootnote} (rodapé dentro do minipage) e +\texttt{equation}. + +Então, alterando o \verb"\the"\index{thecontador@\verb+\the+}, alterará como será impresso estes contadores. + +Por exemplo, \verb+\renewcommand{\thepage}{\roman{page}}+ alterará a enumeração das páginas para i, ii, iii, etc. + +O estilo de enumeração \texttt{roman} acima, podem ser +\begin{description} +\item[\textbackslash\texttt{arabic}]\index{arabic@\verb+\arabic+} que é 1, 2, 3 ... +\item[\textbackslash\texttt{alph}]\index{alph@\verb+\alph+} que é a, b, c ... +\item[\textbackslash\texttt{Alph}]\index{Alph@\verb+\Alph+} que é A, B, C ... +\index[\textbackslash\texttt{roman}]\index{roman@\verb+\roman+} que é i, ii, iii ... +\index[\textbackslash\texttt{Roman}]\index{Roman@\verb+\Roman+} que é I, II, III ... +\index[\textbackslash\texttt{fnsymbol}]\index{fnsymbol@\verb+\fnsymbol+} que é sequencia de símbolos (pode ser usado no rodapé, se for pouco). +\end{description} +Veja Exemplo~\ref{ex12:contadores}. +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex10-04.tex},label=ex:10-04] +\begin{ltxlisting}[caption={ex12-contadores.tex},label=ex12:contadores,preset={\setcounter{section}{\value{lstorisection}}}] +A página atual é \thepage. + +Seção atual em romano minúsculo é \roman{section}. +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +As vezes, precisamos ajustar valores iniciais dos contadores, tais como das páginas, listas enumeradas, etc. +Para tanto existem comandos \verb+\setcounter+\index{setcounter@\verb+\setcounter+}, \verb+\stepcounter+\index{stepcounter@\verb+\stepcounter+} e \verb+\addtocounter+\index{addtocounter@\verb+\addtocounter+}. +Para decrementar, use o valor negativo no parâmetro de \verb+\addtocounter+\index{addtocounter@\verb+\addtocounter+}. + +No caso de listas enumeradas, os contadores são +\texttt{enumi}\index{enumi}, \texttt{enumii}\index{enumii} (sub lista), +\texttt{enumiii}\index{enumiii} (subsub lista), \texttt{enumiv}\index{enumiv} (subsubsub lista). + +Para que estes contadores sejam impressos na fonte reta, mesmo no ambiente em itálico (enunciado do teorema, por exemplo), acrescente + +\begin{singlespacing} +\begin{lstlisting} +\renewcommand{\labelenumi}{\textup{\theenumi.}} +\renewcommand{\labelenumii}{\textup{(\theenumii)}} +\renewcommand{\labelenumiii}{\textup{\theenumiii.}} +\renewcommand{\labelenumiv}{\textup{\theenumiv.}} +\end{lstlisting} +\end{singlespacing} + +no \texttt{preamble} do documento. + +Além disso, o contador novo pode ser criado por \verb+\newcounter+\index{newcounter@\verb+\newcounter+}, útil para ser usado no ambiente/comando novo a ser criados. + +Aqui, vamos criar um contador para testá-los. +Veja o Exemplo~\ref{ex12:newcounter}. + +%%\let\ref\plainref +%\let\orilabel\label +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex10-04.tex, parte b},label=ex:10-04:b,preset=\let\label\orilabel] +\begin{ltxlisting}[caption={ex12-newcounter.tex},label=ex12:newcounter] +\newcounter{teste} % cria e inicializa com o valor zero. +\setcounter{teste}{1} % novo valor + +O contador é \theteste. + +O contador em \texttt{Alph} é \Alph{teste}. + +Adicionando 1 e usando. +\refstepcounter{teste}\label{count:teste}. +Novo valor é \theteste. + +Adicionando por 1 de novo \addtocounter{teste}{1} +Novo valor é \theteste. +O valor atribuído no rótulo \texttt{count:teste} após o \texttt{refstepcounter} é \ref{count:teste}. + +Agora, a lista enumerada começando de $3$ +\begin{enumerate}\setcounter{enumi}{2} +\item Um item. +\item Outro item. +\end{enumerate} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} +%%\let\ref\oriref + +Para que o \verb+\label{}+ pegue o valor atual do contador, use o \verb+\refstepcounter+\index{refstepcounter@\verb+\refstepcounter+} que incrementa o contador por um e atualiza o valor para \verb+\label+. + +Para pegar o valor de um contador (para ser usado como argumento para \verb+\setcounter+, por exemplo), use o comando \verb+\value+\index{value@\verb+\value+}. + +Muitas vezes, um contador está vinculado no outro e quando outro for incrementado, ele será reinicializado. +Além disso, contadores vinculados aos outros imprimem dois valores (contador do outro mais dele). + +Este vínculo pode ser criado pelo comando +\verb+\numberwithin{}{}+\index{numberwithin@\verb+\numberwithin+}. +Quando o \verb++ foi incrementado, o \verb++ é reinicializado. +Por exemplo, para que a enumeração da equação seja da forma \texttt{.}, basta colocar \verb+\numberwithin{equation}{chapter}+ no \texttt{preamble} do documento. + + +Mais sobre manipulações dos contadores, veja o \cite[Capítulo 3, Seção 3]{book:wikibook:latex}. + +%\url{https://en.wikibooks.org/wiki/LaTeX/Counters}. + + +%\chapter{Teste} +% +%\LTXinputExample{test-code} +%% Value for pos +%% t,b,l,r,o, and i +%%for top, bottom, left, right, outer, and inner. +%\begin{LTXexample}[pos=b,caption={Caption of LTXexample},label=ex:start] +%\documentclass{article} +%\usepackage[utf8]{inputenc} +%\usepackage{lipsum} +% +%\begin{document} +%% comentário +%maçã +%\lipsum[1-2] +%\end{document} +%\end{LTXexample} +% +%% truque do https://www.latex4technics.com/?note=30gq +%% para referencia fucnionar no LTXexample +% \let\orilabel\label +%\begin{LTXexample}[frame=none,preset=\let\label\orilabel] +% \begin{enumerate} +% \item No need to manually number items here! +% \item\label{second} Number two added automatically +% \item Third item +% \end{enumerate} +% And here is a reference to item number \ref{second} +%\end{LTXexample} + +\clearpage\thispagestyle{empty}\cleardoublepage +\chapter{Mais Alguns Cuidados e Ajustes} +Neste capítulo, veremos mais alguns ajustes e incrementos no documentos. + +\section{Comandos frágeis} +Existem comandos denominados frágeis por poder causar problemas quando é passado como parâmetros de alguns comandos ou ambientes. Por exemplo, O argumento do \verb+\chapter+ e \verb+\section+ costumam ser usado no sumário também. +Se colocar comando que tem contadores como o \verb+\footnote+, causará problemas, pois tentará colocar rodapé também no sumário. + +Assim, quando colocar comandos no argumento da função que usam o seu parâmetro em mais de um lugar, requer cuidados. +Além dos comandos de seccionamento (\texttt{chapter}, \texttt{section}, etc), \texttt{caption}, \texttt{thanks}, comandos que produz saída do cabeçalho como \texttt{markboth}, etc também usam o seu argumento em mais de um lugar. + +Os comandos que causam problemas quando é passado para argumento destes comandos são chamados de comandos frágeis\index{comandos frágil} e deve ser precedido de \verb+\protect+\index{protect@\verb+\protect+} para prevenir problemas. + +Alguns comandos frágeis são: comandos com argumento opcional, ambientes, fórmula no modo \texttt{displaystyle}, fórmula no modo \texttt{textstyle} delimidado por \verb+\(+ e \verb+\)+ (no entanto, delimitado por ``\$'' não é frágil), \verb+\phantom+, ``\verb+\\+'', \verb+\item+ e \verb+\footnote+. + +Veja Exemmplo~\ref{ex13:fragil}. + +%\setcounter{lstorichapter}{\value{chapter}} +%\setcounter{lstorisection}{\value{section}} +%% \let\orilabel\label +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex06-08.tex, parte b},label=ex:06-08:b,preset={\setcounter{chapter}{1},\setcounter{section}{0},\let\addcontentsline\emptyaddcontentsline}] +\begin{ltxlisting}[caption={ex13-fragil.tex},label=ex13:fragil,preset={\setcounter{chapter}{1}}] +\section{Sublinhando texto\protect\footnote{Forma antiga de enfatizar o texto}} % footnote é frágil: usar \protect +\ldots +\section{Sobre a famosa fórmula $a^2=b^2+c^2$} % delimitado por "$" não é frágil +\ldots +\begin{figure}[hbp!] +\center + Figura aqui. + \caption{$\Gamma_{ij}^{\protect\phantom{ij}2}$} % \phantom é frágil +\end{figure} +\ldots +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} +%%\let\ref\oriref +%\setcounter{chapter}{\value{lstorichapter}} +%\setcounter{section}{\value{lstorisection}} +%% \addtocounter{chapter}{-1} +%\let\addcontentsline\oriaddcontentsline + +\section{Babel e nomes} + +O pacote de internacionalização \texttt{babel}\index{babel} +oferece regra de hifenização\index{hifenização} e nomes dos elementos tais como \texttt{capítulo}, \texttt{figura}, \texttt{tabela}, \texttt{sumário}, etc em vários idiomas\index{idioma}. +Para carregar mais de um idioma, coloque os idiomas separado pela vírgula no parâmetro do \texttt{babel}. +O idioma do último será considerado padrão e outros são opcionais que podem ser ativados quando quiser. + +Seleção de idiomas pode ser mudado por \verb+\selectlanguage{}+\index{selectlanguage@\verb+\selectlanguage+}. +Para demarcar somente um trecho no outro idioma, usa-se o ambiente \texttt{otherlanguage}\index{otherlanguage}. +Para trecho bem curto, poderá usar também o comando \verb+\foreignlanguage+\index{foreignlanguage@\verb+\foreignlanguage+}. +Veja Exemplo~\ref{ex13:babel}. + +%\setcounter{lstorichapter}{\value{chapter}} +%\setcounter{lstorisection}{\value{section}} +%% \let\orilabel\label +%\let\orithesection\thesection +%\renewcommand{\thesection}{\arabic{section}} +%%\newcommand{\articleappendix}{\setcounter{section}{0}\def\thesection{\Alph{section}}} +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex10-03.tex},label=ex:10-03,preset={\setcounter{chapter}{1},\setcounter{section}{0},\let\addcontentsline\emptyaddcontentsline,\let\title\orititle,\let\author\oriauthor,\let\date\oridate,\let\maketitle\makearticletitle}] +\begin{ltxlisting}[caption={ex13-babel.tex},label=ex13:babel,preset={\setcounter{chapter}{1}}] +\documentclass[12pt,a4paper]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{amsmath,amssymb} +\usepackage[english,brazil]{babel} +\title{Exemplo} +\author{Sadao Massago} +\date{Fevereiro, 2018} +\begin{document} +\maketitle +\begin{abstract} +Resumo aqui. +\end{abstract} +% \tableofcontents % so se for artigo longo +\section{Mudando o idioma de um trecho} +O trecho curto pode ser no outro idioma como em ``\foreignlanguage{english}{This is english}''. +Para trechos maiores, use o ambiente \texttt{otherlanguage} como em +\begin{quote} +\begin{otherlanguage}{english} +This environment switches all language-related definitions, like the language specific names for figures, tables etc. to the other language. +\end{otherlanguage} +\end{quote} +\ldots +% referência biliográfica +\end{document} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} +%%\let\ref\oriref +%\setcounter{chapter}{\value{lstorichapter}} +%\setcounter{section}{\value{lstorisection}} +%% \addtocounter{chapter}{-1} +%\let\thesection\orithesection +%\let\addcontentsline\oriaddcontentsline + +Para escrever o nome tais como ``Capítulo'', ``Figura'', ``Sumário'', etc, tem os comandos que produz estes nomes. +Redefinindo apropriadamente estes comandos, podemos alterar a sua saída. + +Alguns nomes pré definidos são: +\verb+\abstractname+\index{abstractname@\verb+\abstractname+} (somente \texttt{article} e \texttt{report}), \verb+\appendixname+\index{appendixname@\verb+\appendixname+}, +\verb+\bibname+\index{bibname@\verb+\bibname+} (somente \texttt{book} e \texttt{report}), +\verb+\chaptername+\index{chaptername@\verb+\chaptername+} (somente \texttt{book} e \texttt{report}), +\verb+\contentsname+\index{contentsname@\verb+\contentsname+}, +\verb+\figurename+\index{figurename@\verb+\figurename+}, \verb+\indexname+\index{indexname@\verb+\indexname+}, +\verb+\listfigurename+\index{listfigurename@\verb+\listfigurenname+}, +\verb+\listtablename+\index{listtablename@\verb+\listtablename+}, +\verb+\partname+\index{partname@\verb+\partname+}, +\verb+\refname+\index{refname@\verb+\refname+} (somente \texttt{article}), +\verb+\tablename+\index{tablename@\verb+\tablename+}. + +Note que o nome para referência bibliográfica no livro e relatório são \verb+\bibname+\index{bibname@\verb+\bibname+} enquanto que no artigo, será \verb+\refname+\index{refname@\verb+\refname+}. + +Alguns pacotes definem o nome usado para seus pacotes. +Por exemplo, \texttt{amsthm} que define o ambiente \texttt{proof}, define também \verb+\proofname+\index{proofname@\verb+\proofname+}. + +Para alterar ou definir novos nomes quando usa o babel, requer usar o recurso do babel, pois nomes pré definidos no babel são redefinidos dinamicamente quando altera os idiomas. + +Assim, deverá definir/redefinir os nomes dentro do comando \verb+\captions+\index{caption@\verb+\captionn+} onde \texttt{} é o nome do idioma. +Mas, se redefinir o \texttt{captions}, perderá as definições anteriores feitas pelo \texttt{babel}. +Logo, utiliza o comando \verb+\addto+\index{addto@\verb+\addto+} do \texttt{babel} que acrescenta porções de código no final do comando especificado. + +Por exemplo, + +\begin{singlespacing} +\begin{lstlisting} +\addto\captionsbrazil{% + \renewcommand\refname{Referências Bibliográficas}% +} +\end{lstlisting} +\end{singlespacing} + +no \texttt{preamble} altera o nome da referência bibliográfica no caso de artigos quando usa o idioma \texttt{brazil}. + +Note que, no caso de português brasileiro, tanto pode usar o \texttt{brazil}\index{brazil} como o \texttt{brazilian}\index{brazilian}. +Assim, precisará redefinir em ambos idiomas, se estiver implementando um pacote na qual não sabe qual opção o usuário final vai usar. +Neste caso, define um comando auxiliar e coloca em cada um dos idiomas. + +\begin{singlespacing} +\begin{lstlisting} +\providecommand{\theoremname}{Theorem} % Providenciando novo nome com valor padrao +\addto\braziliannames{% + \renewcommand\refname{Referências Bibliográficas}% + \renewcommand{\theoremname}{Teorema}% +} +\newcommand{\englishnames}{% + \renewcommand{\theoremname}{Theorem}% +} + +\addto\captionsbrazil{\braziliannames} +\addto\captionsbrazilian{\braziliannames} + +\addto\captionsenglish{\englishnames} +\addto\captionsamerican{\englishnames} + +\newtheorem{theorem}{\theoremname}[section] +\end{lstlisting} +\end{singlespacing} + +no \texttt{preamble} após carregar o pacote \texttt{babel} +habilita suporte para português brasileiro e inglês. +Note que o \verb+\newtheorem+ usa o comando \verb+\theoremname+ que será redefinido quando o idioma muda. +Veja o exemplo~\ref{ex13:babel:caption}. + +%\setcounter{lstorichapter}{\value{chapter}} +%\setcounter{lstorisection}{\value{section}} +%% \let\orilabel\label +%\let\orithesection\thesection +%\renewcommand{\thesection}{\arabic{section}} +%%\newcommand{\articleappendix}{\setcounter{section}{0}\def\thesection{\Alph{section}}} +\begin{singlespacing} +%\begin{lstlisting}[caption={ex10-03.tex, parte b},label=ex:10-03:b,preset={\setcounter{chapter}{1},\setcounter{section}{0},\let\addcontentsline\emptyaddcontentsline,\let\title\orititle,\let\author\oriauthor,\let\date\oridate,\let\maketitle\makearticletitle}] +\begin{lstlisting}[caption={ex13-babel-caption.tex},label=ex13:babel:caption] +\documentclass[12pt,a4paper]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{amsmath,amssymb} +\usepackage{amsthm} +\usepackage[english,brazil]{babel} +\providecommand{\theoremname}{Theorem} % Providenciando novo nome com valor padrao +\addto\braziliannames{% + \renewcommand\refname{Referências Bibliográficas}% + \renewcommand{\theoremname}{Teorema}% +} +\newcommand{\englishnames}{% + \renewcommand{\theoremname}{Theorem}% +} + +\addto\captionsbrazil{\braziliannames} +\addto\captionsbrazilian{\braziliannames} + +\addto\captionsenglish{\englishnames} +\addto\captionsamerican{\englishnames} + +\newtheorem{theorem}{\theoremname}[section] + +\title{Exemplo} +\author{Sadao Massago} +\date{Fevereiro, 2018} +\begin{document} +\maketitle +\begin{abstract} +Resumo aqui. +\end{abstract} +% \tableofcontents % so se for artigo longo +\section{Teoremas multi lingue} +\begin{otherlanguage}{english} +\begin{theorem} +\ldots +\end{theorem} +\end{otherlanguage} +\begin{theorem} +\ldots +\end{theorem} +\begin{thebibliography}{99} +\bibitem[GMS04]{Goossens:2004} + Michel Goossens and Frank Mittelbach + \emph{The {\LaTeX} companion (second edition)}, Adilson--Wesley, 2004. +\end{thebibliography} +\end{document} +\end{lstlisting} +\end{singlespacing} +%%\let\ref\oriref +%\setcounter{chapter}{\value{lstorichapter}} +%\setcounter{section}{\value{lstorisection}} +%% \addtocounter{chapter}{-1} +%\let\thesection\orithesection +%\let\addcontentsline\oriaddcontentsline +% +% +%\let\title\orititle +%\let\author\oriauthor +%\let\date\oridate +%\title{Exemplo} +%\author{Sadao Massago} +%\date{Fevereiro, 2018} +%\let\maketitle\makearticletitle +%% +%\noindent +%\let\orithesection\thesection +%\setcounter{lstorisection}{\value{section}} +%\def\thesection{\arabic{section}} +%\setcounter{section}{0} +%\let\addcontentsline\emptyaddcontentsline +%% +%\fbox{\begin{minipage}{\linewidth} + +\let\orithesection\thesection +\begin{ltxlistingout}[preset={\title{Exemplo}\author{Sadao Massago}\date{Fevereiro, 2018}}\renewcommand{\thesection}{\arabic{section}}] +\maketitle +\begin{abstract} +Resumo aqui. +\end{abstract} +% \tableofcontents % so se for artigo longo +\section{Teoremas multi lingue} + +\textbf{Theorem \arabic{section}.1.} \ldots + +\textbf{Teorema \arabic{section}.2.} \ldots + +\section*{Referẽncias Bibliográficas} +\begin{list}{--}{% + %\setlength{\topsep}{2pt}% + %\setlength{\itemsep}{0pt}% + %\setlength{\parsep}{0pt}% + %\setlength{\parskip}{0pt}% + %\setlength{\labelwidth}{8pt}% + \setlength{\leftmargin}{2em}% + \setlength{\itemindent}{0.5em}% + %\setlength{\labelsep}{2pt}% + }% + \item[[GMS04]] Michel Goossens and Frank Mittelbach + \emph{The {\LaTeX} companion (second edition)}, Adilson--Wesley, 2004. +\end{list} +\end{ltxlistingout} +\let\thesection\orithesection +% +%\end{minipage}} +%\setcounter{section}{\value{lstorisection}} +%\let\thesection\orithesection +%\let\addcontentsline\oriaddcontentsline + +Note que, se usar a opção de idiomas como opção de documentos (no \texttt{documentclass}, o pacote \texttt{babel} reconhece este idioma e vai usar, mesmo que não tenha opções no \texttt{babel}. + + +\section[Espaçamento entre linhas]{Sobre espaçamentos entre linhas e ``estouro de linhas''} + +O espaçamento entre linhas é definido pelo comando \verb+\linespread+\index{linespread@\verb+\linespread+} onde \verb+\linespread{1.3}+ é espaçamento um e meio e \verb+\linespread{1.6}+ é espaçamento duplo, o que atuará a partir do próximo parágrafo. + +Note que o \LaTeX{} deixa ``estourar'' as linhas (\texttt{Overfull} \verb+\hbox+\index{Overfull hbox@Overfull \verb+\hbox+}) quando não consegue acomodar devidamente o conteúdo nas linhas. +Para que ele use o espaçamento grande entre elementos (\texttt{Underfull} \verb+\hbox+\index{Underfull hbox@Underfull \verb+\hbox+}) em vez de ``estourar linhas'', coloque \verb+\sloppy+\index{sloppy@\verb+\sloppy+} (para voltar, use \verb+\fussy+\index{fussy@\verb+\fussy+}). +Note que, independente de linha estar ``estourando'' ou ``espaçando demais'', deverá checar cada um deles para ver se não está prejudicado visualmente e se for o caso, resolver. + +\section{Sobre hifenização} + +O pacote \texttt{babel} carrega a regra de hifenização para idioma selecionada, mas as vezes encontramos as exceções na qual a regra do \texttt{babel} não funciona devidamente. +Neste caso, poderá indicar na palavra de texto, a posição que pode ser hifenizada por ''\verb+\-+''\index{-@\verb+\-+} como em \verb+re\-fe\-rẽn-\cia+. + +Este comando é ignorado quando não há necessidade de hifenização. +Quando precisar, será hifenizada somente nestes locais. + +Em geral, quando encontra uma palavra hifenizada indevidamente, poderemos querer acrescentar regra de hifenização para tal palavra em vez de indicar localmente. +Para tanto, coloque o comando \verb+\hyphenation+\index{hyphenation@\verb+\hyphenation+} onde seu argumento é a lista de palavras separados pelo espaço, onde cada palavra contém ``-'' na posição de hifenização. +Note que, para colocar regra de hifenização das letras acentuadas pelo comando \verb+\hyphenation+, requer \verb+\usepackage[T1]{fontenc}+ ou similar para ativar fontes que suportam acentuações. + +o seguinte trecho de código colocado depois do carregamento do pacote \texttt{babel} no \texttt{preamble} acrescenta hifenizações das palavras correspondentes. + +\begin{singlespacing} +\begin{lstlisting} +% regra de hifenização das palavras nao acentuadas: +% nao requer \usepackage[T1]{fontenc} +\hyphenation{li-vro tes-te cha-ve bi-blio-te-ca} +% regra de hifenização das palavras acentuadas: +% requer \usepackage[T1]{fontenc} +\hyphenation{co-men-tá-rio re-fe-rên-cia} +\end{lstlisting} +\end{singlespacing} + +Para que ele não hifenize, é só colocar dentro de uma caixa, o que pode ser feito pelo comando \verb+\mbox+\index{mbox@\verb+\mbox+}. +O código do tipo \verb+\mbox{não hifenizar}+ não pode ser quebrado em linhas, mesmo na posição de espaços. +Este recurso permite proibir hifenização das palavras localmente. + +Para que não use a hifenização no documento inteiro, costuma aumentar o valor da penalidade de hifenização no \texttt{preamble} do documento. +Com em +\begin{singlespacing} +\begin{lstlisting} +\hyphenpenalty=10000 +\exhyphenpenalty=10000 +\end{lstlisting} +\end{singlespacing} + +\section[Comandos com ``@'' e ``*'']{Acessando os comandos com ``@'', criando comandos versão ``*'' e tipo \texttt{chave=valor}} + +As vezes precisamos usar os comandos ou ambientes que contém ``@'' no seu nome. +O caso típico é redefinir comandos existentes tais como \verb+\maketitle+, estilo de cabeçalho das páginas, etc. +Note que os comandos e ambientes que usam ``@'' no seu nome são comandos sensíveis e devem ser usados com cuidado. +Para acessar estes comandos e ambientes, coloque \verb+\makeatletter+\index{makeatletter@\verb+\makeatletter+} antes de usar e \makeatother+\index{makeatother@\verb+\makeatlther+} depois. + +Por exemplo, ajusta o espaçamento de linhas como simples no texto de rodapé, mesmo que esteja usando espaçamento um e meio ou dupla no corpo do documento. +Isto pode ser feito, acrescentando a seguinte código no \texttt{preamble} do documento. + +%======================================================== +% 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 +%======================================================== +% foi copiado do book e alterado + +\begin{singlespacing} +\begin{lstlisting} +\makeatletter % ativa uso de ``@'' no nome +\renewcommand\@makefntext[1]{% + \parindent 1em% + % inicio da altera\c{c}\~ao + \linespread{1} \@currsize \noindent + % \hb@xt@1.8em{\hss\@makefnmark}#1} + \hb@xt@0.45em{\hss\@makefnmark}#1} +% fim da altera\c{c}\~ao +\makeatother % desativa o uso de ``@'' no nome +\end{lstlisting} +\end{singlespacing} + +Outro exemplo e io caso de usar linhas pontilhadas no sumário. + +\begin{singlespacing} +\begin{lstlisting} +\makeatletter +\renewcommand*\l@section{\@dottedtocline{1}{1.5em}{2.3em}} +\makeatother +\end{lstlisting} +\end{singlespacing} + +no \texttt{preamble} do artigo habilita o uso de linhas pontilhadas no sumário\index{sumário!linhas pontilhadas}, para seções. +Para habilitar o pontilhado no capítulo do sumário é mais complexo. +Veja o código do \url{https://tex.stackexchange.com/questions/62438/how-to-add-leaders-to-table-of-contents-without-tocloft} + +\begin{singlespacing} +\begin{lstlisting} +\renewcommand*\l@chapter[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \vskip 1.0em \@plus\p@ + \setlength\@tempdima{1.5em}% + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode \bfseries + \advance\leftskip\@tempdima + \hskip -\leftskip + #1\nobreak + \xleaders\hbox{$\m@th + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill% + \nobreak\hb@xt@\@pnumwidth{\hss #2}\par + \penalty\@highpenalty + \endgroup + \fi} +\end{lstlisting} +\end{singlespacing} + +Note que no \LaTeX, existem vários comandos e ambientes que tem versão normal e versão ``*'' na qual a versão ``*'' é uma variação da versão normal. +Para criar os comandos e ambientes versão ``*'', usa-se o comando \verb+\@ifstar+\index{ifstar@\verb+\+\arrobasymbforindex\verb+ifstar+} que determina se está ou não usando a versão ``*'', mas seu uso requer cuidados. + +\begin{singlespacing} +\begin{lstlisting} +\makeatletter +\def\myemph{\@ifstar\@myemph\@@myemph} % selecionando os comandos +\newcommand{\@myemph}[1]{\underline{#1}} % versao ``*'' +\newcommand{\@@myemph}[1]{\emph{#1}} % versao normal +\makeatother +\end{lstlisting} +\end{singlespacing} + +Define a versão normal e versão ``*'' do \verb+\myemph+. +Note que na primeira linha foi usado o \verb+\def+ em vez de \verb+\newcommand+, o que é necessário quando o comando tem parâmetros. +Com o \verb+\@ifstar+, seleciona o comando de acordo com a existência do ``*''. +Note que o primeiro é versão com ``*'' e o segundo é a versão sem ``*''. + +Depois define os comandos com ``*'' e comandos sem ``*'' que foi usado anteriormente. +Note o uso de ``@'' no nome destes comandos para proteger do uso indevido deles. + +Assim, podemos usar a versão normal que enfatiza e versão ``*'' que sublinha. +Veja o Exemplo~\ref{ex13:star}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex04-06.tex},label=ex:04-06] +\begin{ltxlisting}[caption={ex13-star.tex},label=ex13:star] +\documentclass[12pt,a4paper]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage[brazil]{babel} +\makeatletter +\def\myemph{\@ifstar\@myemph\@@myemph} % selecionando os comandos +\newcommand{\@myemph}[1]{\underline{#1}} % versao ``*'' +\newcommand{\@@myemph}[1]{\emph{#1}} % versao normal +\makeatother +\begin{document} +Enfatizando palavras com \myemph{Teste} e \myemph*{Teste}. +\end{document} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +Note que no caso de ambientes, a versão com ``*'' pode ser definido diretamente, sem a necessidade do artifício dos comandos como em +\begin{singlespacing} +\begin{lstlisting} +\newenvironment{mypar}[1]% 1 argumento eh titulo + {\par \center ---------------< #1 >--------------- \\ }% título e linha + {\par \center ---------------< fim >--------------- \\} + +\newenvironment{mypar*}[1]% 1 argumento que eh titulo + {\par \center ---------------< #1 >--------------- \\ }% título e linha + {\par \center ------------------------------------- \\} +\makeatother +\end{lstlisting} +\end{singlespacing} + +No caso de ambiente precisar usar o argumento na finalização, precisará associar a algum comando. +Isto porque, o comando \verb+\newenvironment{ambiente}+ criará o par de comandos \verb+\ambiente+ (chamado pelo \verb+\begin{ambiente}+) e \verb+\endambiente+ (chamado pelo \verb+\end{ambiente}+) que funcionará em sincronismo. +Os parâmetros do ambiente são passado para o comando de inicialização, mas não para a finalização. + +Veja o Exemplo~\ref{ex13:parametro:finalizacao} que usa o segundo parâmetro na finalização. + +\begin{ltxlisting}[caption={ex13-parametro-finilizacao.tex}, label=ex13:parametro:finalizacao] +\documentclass[12pt,a4paper]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage[brazil]{babel} +\newenvironment{mypartwo}[2]{ +\par\noindent\hrulefill% +\ifx #1\empty +\else % se nao for vazio, coloca com fbox + \fbox{#1} +\fi +\hrulefill\par +\def\mypartwoargtwo{#2}}{% agora eh finalizacao do ambiente +\par\noindent\hrulefill% +\ifx \mypartwoargtwo\empty +\else + \fbox{\mypartwoargtwo} +\fi% +\hrulefill\par} +\begin{document} +\begin{mypartwo}{Inicio}{Fim} +Testando +\end{mypartwo} +\end{document} +\end{ltxlisting} + + +Note que no exemplo acima, foi usado o comando \verb+\ifx+\index{ifx@\verb+\ifx+} para verificar se o argumento correspondente é ou não vazio. +O comando \verb+\else+\index{else@\verb+\else+} é \texttt{senão} e \verb+\fi+\index{fi@\verb+\fi+} é \texttt{fim se}. + + +Outra coisa que pode querer é criar comandos e ambientes que recebem os parâmetros na forma \texttt{chave=valor}\index{parâmetros!chave=valor}. + +Para isso, usa-se o pacote \texttt{keyval}. +para implementar o parãmetro do tipo \texttt{chave=valor}, deverá criar a regra e o que fazer quando tiver um determinado chave no parâmetro, usando o comando \verb+\define@key+\index{definekey@\verb+\define+\arrobasymbforindex\verb+key+}. + +O primeiro parâmetro é o grupo que o parâmetro pertence. +Em geral, coloca o nome do comando ou ambiente para evitar conflitos. +Segundo parâmetro e nome da chave e terceiro é o que vai fazer. +O \verb+#1+ será o valor da chave. + +Em geral, se tiver o nome da chave sem o valor, dará erro. +Se quer aceitar a chave sem o valor, poderá passar o valor padrão como parâmetro opcional. + +O parâmetro será evaluado pelo comando \verb+\setkeys+\index{setkeys@\verb+\setkeys+} onde primeiro parãmetro é o grupo que o parâmetro pertence. + +Note que, se o parâmetro for definido pelo comando, precisará expandir antes, ou seja, retardar o \verb+\setkeys+. Para isso, usa-se o coamndo \verb+\expandafter+\index{expandafter@\verb+\expandafter+}, mas retardar o comando para expandir o segundo argumento primeiro não é simples. +Neste caso, define um comando auxiliar com um único argumento que chama o \verb+\setkeys+ com nome do grupo prefixado e aplicar \verb+\expandafter+ neste comando. +Veja o Exemplo~\ref{ex13:keyval}. + +\begin{ltxlisting}[caption={ex13-keyval}, label=ex13:keyval] +\documentclass[12pt,a4paper]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage[brazil]{babel} +\makeatletter +% O que vai fazer se encontrar "foo" no parametro do grupo "my". +\define@key{my}{foo}{foo vale #1\par} % se receber foo sem o seu valor, dara erro +\define@key{my}{bar}[99]{bar vale #1\par} % com valor padrao "99" se valor nao for repassado. +\makeatother + +% Definindo o comando auxiliar com um argumento +\def\mysetkeys#1{\setkeys{my}{#1}} +% Comando associado ao argumento +\def\mykeyvalue{foo=5} +\begin{document} +Testando o parâmetro chave=valor. + +\setkeys{my}{foo=3,bar} + +O argumento que esta ``armazenado'' no comando. + +\mykeyvalue + +% expandindo o argumento primeiro para poder evaluar +\expandafter\mysetkeys\expandafter{\mykeyvalue} +\end{document} +\end{ltxlisting} + +Agora, veja o Exemplo~\ref{ex13:keyval:env} para exemplo de implementação do ambiente. +Nele, foi usado o \verb+\newif+\index{newif@\verb+\newif+} que cria um condicional. +O comando \verb+\newif\if+ cria o condicional \verb+\if+ que torna verdadeiro ou falso quando chamar \verb+iftrue+ ou \verb+iffalse+ respectivamente. + +\begin{ltxlisting}[caption={ex13-keyval-env}, label=ex13:keyval:env] +\documentclass[12pt,a4paper]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage[brazil]{babel} +\makeatletter +\newif\ifmyparkeyvaltitle % testar se tem titulo +% O titulo sera associado ao comando para poder ser usado posteriormente. +\define@key{myparkeyval}{title}{ +\hrulefill\fbox{#1}\hrulefill\myparkeyvaltitletrue +\def\myparkeyvaltitle{#1}} + +\newenvironment{myparkeyval}[1][]{ +\myparkeyvaltitlefalse +\par\noindent +\setkeys{myparkeyval}{#1} +\ifmyparkeyvaltitle +\else + \hrule +\fi +\par}{ +\par\noindent +\ifmyparkeyvaltitle + \hrulefill\fbox{fim do \myparkeyvaltitle}\hrulefill +\else + \hrule +\fi +\par} +\makeatother + +\begin{document} +\begin{myparkeyval} +Sem titulo. +\end{myparkeyval} + +\begin{myparkeyval}[title=Titulo] +Com titulo. +\end{myparkeyval} +\end{document} +\end{ltxlisting} + + +\section{Trocando fontes} + +Fontes padrão do \LaTeX{} é \texttt{Computer Modern} desenhado especialmente para ele, mas existem outras fontes incluídos no \TeX{} que podem ser usados. + +Em geral, selecionar fontes manualmente requer cuidados e conhecimento sobre tipografia para não combinar fontes incompatíveis. +Portanto, recorremos aos pacotes desenvolvidos pelos \texttt{experts} no assunto. + +Vamos ver como usar a fonte \texttt{Times}\index{Times} que é uma das fontes populares. +Para selecionar a fonte \texttt{times}, usa os pacotes \texttt{mathptmx}\index{mathptmx}. +Basta colocar \verb+\usepackage{mathptmx}+ para que fontes fiquem como \texttt{Times}. + +Para o Palatino, use o pacote \texttt{mathpazo}\index{mathpazo} com o comando \verb+\usepackage{mathpazo}+. + +Ainda existem vários outros fontes que vem em qualquer distribuição \TeX, assim como fontes adicionais do \TeX{} mais completo. + +\section{Trocando marcador da lista itemizada} + +A marca de itens\index{lista!marca de itens} da lista \texttt{itemize} também pode ser redefinidos. +Por exemplo, o código +\begin{singlespacing} +\begin{lstlisting} +\renewcommand{\labelitemi}{$\bullet$} +\renewcommand{\labelitemii}{$\cdot$} +\renewcommand{\labelitemiii}{$\diamond$} +\renewcommand{\labelitemiv}{$\ast$} +\end{lstlisting} +\end{singlespacing} +ajustado adequadamente no \texttt{preamble} faz isso. + +\section{Cores no \LaTeX{}} + +O pacote \texttt{color}\index{color} (carregado automaticamente pelo pacote \texttt{graphicx}) oferece recursos básicos para trabalhar com cores no \LaTeX. +Aqui, vamos supor que o \verb+\usepackage{graphicx}+ já está no \texttt{preamble}. +Para poder referenciar cores pelos nomes, coloque \verb+\usepackage[usenames]{color}+\index{color!usenames} no \texttt{preamble} também. + +Os comandos de cores usam o parâmetro opcional para indicar o modelo. +Se for omitido, será assumido o que foi especificado na hora de carregar o pacote \texttt{color}. +Como estamos supondo que vai usar a opção \texttt{usenames} na opção do pacote \texttt{color}, se o modelo for omitido nos comandos de cores, será assumido como \texttt{named}\index{color!named} (por nomes). + +A cor é especificado pelo comando \verb+\color[modelo]{cor}+\index{color@\verb+\color+}, mas lembre-se de proteger pelas chaves para que a cor retorne ao padrão fora delas. +Para a cor do fundo (das páginas), usa-se o comando \verb|\pagecolor[modelo]{cor}|\index{pagecolor@\verb+\pagecolor+}. + No caso do trecho de textos, podemos usar os comandos +\verb|\textcolor[modelo]{cor}{texto}|\index{textcolor@\verb+\textcolor+} (texto com cor especificado), \verb|\colorbox[modelo]{cor}{texto}|\index{colorbox@\verb+\colorbox+} (caixa de texto com cor do fundo especificado) e \verb|\fcolorbox[modelo]{fcor}{bcolor}{texto}|\index{fcolorbox@\verb+\fcolorbox+} (caixa de texto com cor \texttt{bcolor} e cor do contorno \texttt{fcolor}) são usados. +Veja o Exemplo~\ref{ex13:color}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex09-03.tex},label=ex:09-03] +\begin{ltxlisting}[caption={ex13-color.tex},label=ex13:color] +Cor normal. {\color{red} Somente neste trecho muda de cor.} Aqui é cor normal. + +Combinando: +\textcolor{white}{\colorbox{black}{texto colorido na caixa colorida}} +\end{ltxlisting} +%\end{singlespacing} + +Segue uma tabela de cores básicos. + +\begin{table}[htbp] +\caption{cores aceitos em todos \texttt{drivers} no pacote \texttt{color}} + \ \\ + \begin{tabular}{|c|c|c|c|c|c|c|c|} + \hline + black & \colorbox{black}{\hspace*{1cm}} & white & \colorbox{white}{\hspace*{1cm}} & + red & \colorbox{red}{\hspace*{1cm}} & green & \colorbox{green}{\hspace*{1cm}} \\ \hline + blue & \colorbox{blue}{\hspace*{1cm}} & cyan & \colorbox{cyan}{\hspace*{1cm}} & + magenta & \colorbox{magenta}{\hspace*{1cm}} & yellow & \colorbox{yellow}{\hspace*{1cm}} \\ \hline + \end{tabular} +\end{table} + + Para mais opções de cores, poderá usar opções \texttt{dvipsnames,usenames} na opção do pacote \texttt{color}, mas memorizar muitas cores não é produtivo. +Assim, costuma usar o pacote mais avançado de cores que permite misturar cores. + +\clearpage\thispagestyle{empty}\cleardoublepage +\chapter{Usando Pacotes Fora do \texttt{base} e \texttt{required}} + +Até agora, só estudamos os pacotes disponíveis em qualquer distribuição \TeX, usando somente os pacotes do conjunto denominado de \texttt{base}\index{base} e \texttt{required}\index{required}. +No entanto, maioria das distribuições \LaTeX{} instala uma grande quantidade de pacotes adicionais para incrementar a sua funcionalidade. +Assim, neste capítulo, vamos aventurar em alguns destes pacotes adicionais para facilitar o nosso trabalho. + +\section[Configuração das páginas]{Ajustando a configuração das páginas e similares} + +Para ajustar as margens, tamanho de papeis, espaçamento entre cabeçalho e texto, etc, usamos o pacote \texttt{geometry}\index{geometry}. +As configurações podem ser feitas, passando no parâmetro opcional do pacote, a lista dos itens na forma \texttt{chave=valor}, separado pela virgula. +Também pode usar o comando \verb+\geometry+\index{geometry@\verb+\geometry+} após carregar o pacote. + +Para ajustar margem superior (\texttt{tmargin}\index{geometry!tmargin}), margem inferior (\texttt{bmargin}\index{geometry!bmargin}), margem esquerda (\texttt{lmargin}\index{geometry!lmargin}, será de dentro se for frente/verso), margem direita (\texttt{rmargin}\index{geometry!rmargin}, será de fora se for frente/verso), basta colocar algo como +\begin{singlespacing} +\begin{lstlisting} +\usepackage[tmargin=2cm,bmargin=2cm,lmargin=2cm,rmargin=2cm]{geometry} +\end{lstlisting} +\end{singlespacing} +ou +\begin{singlespacing} +\begin{lstlisting} +\usepackage{geometry} +\geometry{tmargin=2cm,bmargin=2cm,lmargin=2cm,rmargin=2cm} +\end{lstlisting} +\end{singlespacing} + +no \texttt{preamble} do documento. + +Para ajuste de espaçamento entre linhas, usamos o pacote \texttt{setspace}\index{setspace} que tem os comandos \verb+\singlespacing+\index{singlespacing@\verb+\singlespacing+} (espaçamento simples), \verb+\onehalfspacing+\index{onehalfspacing@\verb+\onehalfspacing+} (espaçamento um e meio) e \verb+\doublespacing+\index{doublespacing@\verb+\doublespacing+} (espaçamento duplo), além do ambiente \texttt{spacing}\index{spacing} que permite qualquer espaçamento dentro dele. + +Para que o documento fique em espaçamento um e meio, coloque + +\begin{singlespacing} +\begin{lstlisting} +\usepackage{setspace} +\onehalfspacing +\end{lstlisting} +\end{singlespacing} + +no \texttt{preamble} do documento. + +Usuário da classe \texttt{memoir}\index{memoir} devem colocar \verb+\DisemulatePackage{setspace}+\index{DisemulatePackagesetspace@\verb+\DisemulatePackage{setspace}+} antes de carregar o \texttt{setspace}. + +Para desabilitar a hifenização em todo documento ou ativar hifenização na fonte nono espaçado, poderá usar o pacote \texttt{hyphenat}\index{hyphenat}. +\begin{singlespacing} +\begin{lstlisting} +\usepackage[none]{hypenat} +\end{lstlisting} +\end{singlespacing} +no \texttt{preamble} desabilita hifenização em todo documento. +Se não quer usar o pacote e quer desativar a hifenização, coloque +\begin{singlespacing} +\begin{lstlisting} +\hyphenpenalty=10000 +\exhyphenpenalty=10000 +\end{lstlisting} +\end{singlespacing} +no \texttt{preamble} do documento. + +Para melhorar o ajuste de espaços, poderemos usar o pacote \texttt{microtype}\index{microtype} que usa o recurso de micro tipografia. Por exemplo, reduzir ou ampliar levemente a fonte melhora o espaçamento. +Por exemplo, podemos colocar +\begin{singlespacing} +\begin{lstlisting} +\usepackage[stretch=10]{microtype} +\end{lstlisting} +\end{singlespacing} +no \texttt{preamble}. + +Cabeçalho no estilo de página \texttt{headings}\index{headings} coloca o título do capítulo e seção no cabeçalho em maiúsculo. +Para tanto, usa-se o comando \verb+\MakeUppercase+\index{MakeUppercase@\verb+\MakeUppercase+} que não funciona para letras acentuadas diretamente (funciona para acentuação no modo \TeX). +Além disso, ele tenta converter inclusive as fórmulas, o que pode causar problemas. +O pacote \texttt{textcase}\index{textcase} permite sobrescrever o \verb+\MakeUppercase+ para evitar tais problemas, além de mais alguns recursos adicionais. +Coloque +\begin{singlespacing} +\begin{lstlisting} +\usepackage[overload]{textcase} +\end{lstlisting} +\end{singlespacing} + +no \texttt{preamble}. + +Normalmente, a referência bibliográfica e índice remissivo não costumam ficar no sumário. +Para que eles constem no sumário, use o pacote \texttt{tocbibind}\index{tocbibind}. +Usando a opção adicional, pode impedir que sumário, lista de figuras e de tabelas fiquem fora do sumário. +\begin{singlespacing} +\begin{lstlisting} +\usepackage[nottoc,notlof,notlot]{tocbibind} +\end{lstlisting} +\end{singlespacing} +no \texttt{preamble} efetua esta tarefa. + +Note que no \LaTeX, o texto é justificado por padrão, mas não existe comando para justificar um trecho dentro do outro alinhamento. +Uma saída é usar o \texttt{minipage}, mas \texttt{minipage} não permite quebrar entre páginas. +Para resolver este problema, existe o pacote \texttt{ragged2e}\index{ragged2e} que providencia o ambiente \texttt{justify}\index{justify} (e comando \verb+\justify+\index{justify@\verb+\justify+}) que pode ser usado como outros comandos de alinhamento de texto no parágrafo. + +\section{Estilo europeu} +Em Alguns países da Europa, um parágrafo é separado pela outra com o espaçamento maior entre linhas em vez de indentação. +Remover a indentação é feito simplesmente ajustando o valor de \verb+\parindent+\index{parindent@\verb+\parindent+} para zero, mas ajustar o espaçamento antes do parágrafo por \verb+\parskip+\index{parskip@\verb+\parskip+} e acertar alguns detalhes requer conhecimento extra. +Para facilitar, existe o pacote \texttt{parskip}\index{parskip} que, ao ser usado, ajustam de forma apropriada. +Se não quer usar o pacote, coloque +\begin{singlespacing} +\begin{lstlisting} +\setlength{\parindent}{0pt} +\setlength{\parskip}{1ex plus 0.5ex minus 0.2ex} +\end{lstlisting} +\end{singlespacing} +no \texttt{preamble}, mas isto não ajustará tudo que o pacote faz. + +Para produzir o estilo literário francês\index{estilo literário!francês} na qual a primeira letra do parágrafo ocupa mais de uma linha, tem o pacote \texttt{lettrine}\index{lettrine}. +O uso comum nos livros de literatura é usar o \texttt{lettrine} no primeiro parágrafo do capítulo e manter o restante como normal. +Veja o Exemplo~\ref{ex14:lettrine} na qual assume que tem o \verb+\usepackage{lettrine}+ no \texttt{preamble} do documento. +%\setcounter{lstorichapter}{\value{chapter}} +%\setcounter{lstorisection}{\value{section}} +%\setcounter{chapter}{0} %\setcounter{section}{0} +%\let\addcontentsline\emptyaddcontentsline +%\begin{singlespacing} +%\begin{lstlisting}[pos=b,caption={ex11-03.tex},label=ex:11-03] +\begin{ltxlisting}[caption={ex14-lettrine.tex},label=ex14:lettrine] +\chapter{Um Capítulo} +\lettrine{E}{xiste} um pacote chamado \texttt{letrine} que oferece o estilo literário francês (estilo bíblico) na qual a primeira letra do parágrafo ocupa varias linhas. +Alguns livros literários usa este estilo somente para o parágrafo do primeiro capítulo, mantendo outros parágrafos como sendo normal. O primeiro parâmetro é a letra (primeira letra) que ocupará várias linhas, e o segundo parâmetro é a continuação dele até finalizar a palavra, que será escrito em maiúsculo. O comando ainda aceita parâmetros opcionais para ajustar quantas linhas vai ocupar, etc. +\end{ltxlisting} +%\end{singlespacing} +%\setcounter{chapter}{\value{lstorichapter}} +%\setcounter{section}{\value{lstorisection}} +%\let\addcontentsline\oriaddcontentsline + +%\setcounter{lstorichapter}{\value{chapter}} +%\setcounter{lstorisection}{\value{section}} +%\setcounter{chapter}{0} +%%\setcounter{section}{0} +%%\let\addcontentsline\emptyaddcontensline +%%\newcommand{\emptyaddcontentsline}[3]{} +%% \let\oriaddcontentsline\addcontentsline +%\let\addcontentsline\emptyaddcontentsline +%\begin{singlespacing} +%%\fbox{ +%\begin{framed}\noindent +%\begin{minipage}{\linewidth} +%\chapter{Um Capítulo} +%\lettrine{E}{xiste} um pacote chamado \texttt{letrine} que oferece o estilo literário francês (estilo bíblico) na qual a primeira letra do parágrafo ocupa varias linhas. +%Alguns livros literários usam este estilo somente para o parágrafo do primeiro capítulo, mantendo outros parágrafos como sendo normal. O primeiro parâmetro é a letra (primeira letra) que ocupará várias linhas, e o segundo parâmetro é a continuação dele até finalizar a palavra, que será escrito em maiúsculo. +%O comando ainda aceita parâmetros opcionais para ajustar quantas linhas vai ocupar, etc. +%\end{minipage} +%\end{framed} +%%} +%\end{singlespacing} +%\setcounter{chapter}{\value{lstorichapter}} +%\setcounter{section}{\value{lstorisection}} +%\let\addcontentsline\oriaddcontentsline + +\section[Cabeçalho e títulos]{Ajustando o cabeçalho, títulos de capítulos e de figuras} + +Ajustar o cabeçalho diretamente não é simples. +Assim, costumamos usar o pacote \texttt{fancyhdr}\index{fancyhdr} que permite personalizar o cabeçalho das páginas. +Veja o Exemplo~\ref{ex14:fancyhdr} usado para produzir estilo de páginas deste documento. + +\begin{singlespacing} +\begin{lstlisting}[caption={ex14-fancyhdr.tex},label=ex14:fancyhdr] +\documentclass[12pt,a4paper]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage[brazil]{babel} + +\usepackage{calc} % para calculo de medidas +\usepackage{fancyhdr} % personalizar o cabeçalho + +% \fancyheadoffset[LE,RO]{\marginparsep+\marginparwidth} + +% 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 %%%%%%%%%%%% + +% iniciar com estilo empty +\pagestyle{empty} +\begin{document} +... +\pagestyle{fancy} % inicia o cabeçalho personalizado +... +\end{document} +\end{lstlisting} +\end{singlespacing} + +Note que o comando \verb+\fancypagestyle+\index{fancypagestyle@\verb+\fancypagestyle+} permite definir/redefinir estilo de páginas, exceto o \texttt{fancy}\index{fancy} que é configurado diretamente, o que requer cuidados. +Se usar o \verb+\fancypagestyle{fancy}+, o \LaTeX{} pode parar no meio da compilação quando encontrar o \verb+\pagestyle{fancy}+. + + +Para configurar o formato de título do capítulo e seções, usamos o pacote \texttt{titlesec}\index{titlesec}. +Note que, para ajuste somente de capítulos, existe o pacote \texttt{fncychap}\index{fncychap} que permite escolher modelo entre alguns prontos com a opçaõ do pacote (\texttt{Sonny}\index{fncychap!Sonny}, \texttt{Lenny}\index{fncychap!Lenny}, \texttt{Glenn}\index{fncychap!Glenn}, \texttt{Conny}\index{fncychap!Conny}, \texttt{Rejne}\index{fncychap!Rejne}, \texttt{Bjarne}\index{fncychap!Bjarne}, \texttt{Bjornstrup}\index{fncychap!Bjornstrup}) e ajustar as fontes com comandos tais como \verb+\ChNumVar+\index{fncychap!ChNumVar@\verb+\ChNumVar+} e \verb+\ChTitleVar+\index{fncychap!ChTitleVar@\verb+\ChTitleVar+}. Mas não consegue refazer o estilo como no \texttt{titlesec}. + +Assim, para configuração mais refinado de títulos de capítulos e seções, costumam usar o \texttt{titlesec}. +Este pacote, além de configuração refinado de títulos, também pode ser usado para configurar o cabeçalho. +Note que, para configuração mais refinado de cabeçalhos, costuma usar o \texttt{fancyhdr}. +Veja o Exemplo~\ref{ex14:titlesec}. + +%\begin{singlespacing} +%\begin{lstlisting}[caption={ex14-titlesec.tex},label=ex14:titlesec] +\begin{ltxlisting}[caption={ex14-titlesec.tex},label=ex14:titlesec] +\documentclass[12pt,a4paper]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage[brazil]{babel} + +\usepackage{calc} % para calculo de medidas + +\usepackage[pagestyles]{titlesec} % para formatar titulo do capitulo e secao + +% formatando o titulo do capítulo +\titleformat{\chapter}[display] % modo display +{\bfseries\Large} % fonte usado no título do capítulo +{\filleft\MakeUppercase{\chaptertitlename} \Huge\thechapter} % Como colocar o nome do capítulo +{4ex} % espaco entre nome do capítulo e titulo do capítulo +{\titlerule\vspace{2ex}\filright} % o que colocar antes do titulo do capitulo +[\vspace{2ex}\titlerule] % depois do titulo do capítulo + +% \titlespacing*{\chapter}{0pt}{20pt}{16pt} % espacamento do titulo de capitulos + +% Exemplo ajustado da documentação +% formatando o título da seção +\newcommand{\sectiontitlename}{Seção} + +\titleformat{\section}[frame]% colocar moldura +{\normalfont}% fonte normal +{\filright\footnotesize +\enspace \MakeUppercase{\sectiontitlename}\enspace \thesection\enspace}% Como colocar o nome/enumeracao da seção +{8pt}% espaço antes do titulo da seção +{\Large\bfseries\filcenter}% antes do titulo da seção (ajustando fontes) + +% \titlespacing{\section}{0pt}{*2}{*2} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% definindo o estilo do cabeçalho usando titlesec +% para configuração mais sofisticada, use fancyhdr + +\newpagestyle{main}{ % Novo estilo de pagina + \headrule + \sethead[\thechapter. \scshape\chaptertitle][][]{}{}{\thechapter. \slshape\chaptertitle} + \setfoot[][\thepage][]{}{\thepage}{} +} + +\pagestyle{empty} +\begin{document} +\pagestyle{main} % inicia o cabeçalho personalizado +\chapter{Um Capítulo} +Um capítulo novo. +\section{Usando \texttt{titlesec}} +\ldots +\end{document} +\end{ltxlisting} +%\end{lstlisting} +%\end{singlespacing} + +%{ % start group for titlesec +%\titleformat{\chapter}[display]{\bfseries\Large} +%{\filleft\MakeUppercase{\chaptertitlename} \Huge\thechapter}{4ex}{\titlerule\vspace{2ex}\filright}[\vspace{2ex}\titlerule] +% +%\newcommand{\sectiontitlename}{Seção} +%\titleformat{\section}[frame]{\normalfont}{\filright\footnotesize\enspace \MakeUppercase{\sectiontitlename}\enspace \thesection\enspace}{8pt}{\Large\bfseries\filcenter} +% +%\setcounter{lstorichapter}{\value{chapter}} +%\setcounter{lstorisection}{\value{section}} +%\setcounter{chapter}{0}\setcounter{section}{0} +%\let\addcontentsline\emptyaddcontentsline +%\fbox{\begin{minipage}{\linewidth} +%\chapter{Um Capítulo} +%Um capítulo novo. +%\section{Usando \texttt{titlesec}} +%\ldots +%\end{minipage}} +%} % end group for titlesec +% +%\setcounter{chapter}{\value{lstorichapter}} +%\setcounter{section}{\value{lstorisection}} +%\let\addcontentsline\oriaddcontentsline + +Note que a primeira página do capítulo será sempre do estilo \texttt{plain}. Então, se quer que a primeira página do capítulo seja diferente do \texttt{plain} padrão, deverá redefinir ele. + +Para configurações mais complicadas de títulos de capítulos e seções, use a opção \texttt{explicit}\index{titlesec!explicit} na qual os textos de títulos só serão colocados se for referenciado diretamente. + +Para usar o \texttt{titlesec} e \texttt{fancyhdr} ao mesmo tempo, deverá carregar o \texttt{titlesec} com opção \texttt{pagestyles} e antes do \texttt{fancyhdr}. + +%precisará ajustar o carretamento, pois eles definem os comandos \verb+headrule+ e \verb+\footrule+, causando erro no carregamento do segundo pacote. +%Se quer definir títulos de capítulos e seções com \texttt{titlesec} e cabeçalho da página com \texttt{fancyhdr}, carregue da seguinte forma. +%\begin{singlespacing} +%\begin{lstlisting} +%\usepackage[pagestyles]{titlesec} +%\let\headrule\undefined % remover o comando \headrule +%\let\footrule\undefined % remover o comando \footrule +%\usepackage{fancyhdr} +%\end{lstlisting} +%\end{singlespacing} +%Não troque as ordens destes dois pacotes, pois os comandos \verb+\headrule+ e \verb+\footrule+ destes pacotes são incompatíveis. + +Para configurar a saída de títulos dos elementos flutuantes como figuras e tabelas que são produzidos pelo comando \verb+\caption+\index{caption@\verb+\caption+}, costuma usar o pacote \texttt{caption}\index{caption} que implementa o comando \verb+\captionsetup+\index{captionsetup@\verb+\captionsetup+} para configurar o formato de títulos das figuras e tabelas e também oferece versão ``*'' do \verb+\caption+\index{caption*@\verb+\caption*+} que não será contabilizada (só coloca o título). + +No Exemplo~\ref{ex14:caption}, será configurado que no \texttt{figure}, nome será \texttt{Imagem}, fonte do nome será em negrito, título em itálico, formato do nome é modo simples e nome com título será separado pelo ponto. + +%\setcounter{lstorichapter}{\value{chapter}} +%\setcounter{chapter}{0} +\begin{singlespacing} +%\begin{lstlisting}[caption={ex11-03.tex, parte c},label=ex:11-03:c] +\begin{lstlisting}[caption={ex14-caption.tex},label=ex14:caption] +\documentclass[12pt,a4paper]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage[brazil]{babel} + +\usepackage{caption} % para formatar titulo do float (figura e tabela) + +\captionsetup[figure]{name=Imagem,labelfont={bf}, textfont=it, labelformat=simple, labelsep=period} +\pagestyle{empty} +\begin{document} + +\begin{figure}[hbp!] +\center +Figura aqui. +\caption{Novo título}\label{fig:titulo:novo} +\end{figure} + +\clearcaptionsetup{figure} + +\begin{figure}[hbp!] +\center +Figura aqui. +\caption{Título normal}\label{fig:titulo:normal} +\end{figure} +\end{document} +\end{lstlisting} +\end{singlespacing} +%\setcounter{chapter}{\value{lstorichapter}} + +%\fbox{\begin{minipage}{\linewidth} +\begin{ltxlistingout} +\begin{center} +Figura aqui. + +{\textbf{Imagem 1.} \textit{Novo título}} +\end{center} +\begin{center} +Figura aqui. + +{Figura 2: Título normal} +\end{center} +\end{ltxlistingout} +%\end{minipage}} + +%\begin{figure} +%\caption{teste} +%\end{figure} + + +Para limpar as configurações, use o comando \verb+\clearcaptionsetup{figure}+\index{clearcaptionsetup@\verb+\clearcaptionsetup+}, onde \texttt{figure} pode ser \texttt{table}, se for da tabela. + +Para criar configurações complexas que é difícil de ser ajustado com comandos acima, poderá usar o comando \verb+\DeclareCaptionFormat+\index{DeclareCaptionFormat@\verb+\DeclareCaptionFormat+}. + +Por exemplo, se quer que nome da figura fique em maiúsculo negrito, separado por dois pontos e titulo em itálico, basta criar o estilo novo com +\begin{singlespacing} +\begin{lstlisting} +\DeclareCaptionFormat{meuestilo}{{\MakeUppercase\bfseries #1}#2\textit{#3}\par} +\end{lstlisting} +\end{singlespacing} +e usar como +\verb+\captionsetup[figure]{format=meuestilo, labelsep=colon}+. + +%geometry, OK +%setspace, OK +%hyphenat, OK +%microtype, OK. +%textcase, OK +%tocbibind, OK +%fancyhdr, OK +%fncychap, OK +%%Options: Sonny, Lenny, Glenn, Conny, Rejne, Bjarne, Bjornstrup +%% \usepackage[Sonny]{fncychap} +%titlesec, OK +%caption, OK + +%\begin{verbatim} +%\usepackage{caption} +%\captionsetup[figure]{name=New Table Name,labelfont=it,textfont={bf,it}, +%labelformat=simple, labelsep=colon} +% +%Label Format Result +%labelformat = empty No label is shown - i.e. no number or letter +%labelformat = simple Shows number or letter in caption +%labelformat = parens Shows number or letter in caption in parentheses - i.e. (1), (A) +% +%The labelsep option can be set to: +%Label Separator +%labelsep = none +%labelsep = colon +%labelsep = period +%labelsep = space +%labelsep = quad +%labelsep = newline +% +%\clearcaptionsetup{figure} +%\DeclareCaptionFormat{plain}{#1#2#3\par} +% +%\DeclareCaptionFormat{plain}{{\MakeUppercase #1}#2#3\par} +% +%\end{verbatim} + + +\section{Links} + +Quando usa o pacote \texttt{hyperref}\index{hyperref}, sumário, índice remissivo, as referências cruzadas e citações ganham link automaticamente. +Além disso, poderá configurar informações gerais do documento PDF gerado, tais como titulo, autor, palavras-chave, etc relacionado com o documento PDF. + +A configuração do PDF pode ser feito por algo como segue. +\begin{singlespacing} +\begin{lstlisting} +... +\usepackage{hyperref} + +% configurando o PDF +\hypersetup{ + bookmarks=true, % show bookmarks bar? + unicode=true, % non-Latin characters in Acrobat’s bookmarks +% pdftoolbar=true, % show Acrobat’s toolbar? +% pdfmenubar=true, % show Acrobat’s menu? +% pdffitwindow=false, % window fit to page when opened +% pdfstartview={FitH}, % fits the width of the page to the window + pdftitle={Pacote hyperref}, % title + pdfauthor={Sadao Massago}, % author + pdfsubject={Uso do pacote hyperref}, % subject of the document +% pdfcreator={Creator}, % creator of the document +% pdfproducer={Producer}, % producer of the document +% pdfkeywords={keyword1, key2, key3}, % list of keywords +% pdfnewwindow=true, % links in new PDF window +% colorlinks=false, % false: boxed links; true: colored links +% linkcolor=red, % color of internal links (change box color with linkbordercolor) +% citecolor=green, % color of links to bibliography +% filecolor=magenta, % color of file links +% urlcolor=cyan % color of external links +} +... +\end{lstlisting} +\end{singlespacing} + +Note que, apenas carregar o \texttt{hyperref} já é suficiente para maioria dos casos, mas em geral, se estiver usando pacotes que ajustam os comando s de referências cruzadas ou citações, o pacote \texttt{hyperref} deve vir depois deles para não perder os links. + +Além do link automático, poderá inserir links para sites, etc, usando o comando \verb+\url+\index{url@\verb+\url+}. +\begin{singlespacing} +\begin{lstlisting} +Veja \url{https://en.wikibooks.org/wiki/LaTeX/Hyperlinks} por exemplo. +\end{lstlisting} +\end{singlespacing} +Atualmente, o \texttt{url} é importante para ser colocado nas referências bibliográficas. +O estilo moderno para \BibTeX{} costuma usar o campo \texttt{url}\index{BibTeX!url} na qual o seu valor costuma ser colocado no arquivo de \BibTeX{} com o comando \verb+\url+ como em +\begin{singlespacing} +\begin{lstlisting} +... +url = \url{https://en.wikibooks.org/wiki/LaTeX/}, +... +\end{lstlisting} +\end{singlespacing} +Obviamente, o arquivo \texttt{tex} correspondente deve usar o pacote \texttt{hyperref} ou o \texttt{url}. + +Quando o texto onde clicar é diferente do endereço do link, poderá usar o \texttt{href} como em + +\begin{singlespacing} +\begin{lstlisting} +\href{https://en.wikibooks.org/wiki/LaTeX/}{wikibooks, \LaTeX{}} +\end{lstlisting} +\end{singlespacing} + +Também poderá criar os links manualmente, dentro do documento. +Para isso, define a chegada do link com o comando \verb+\hypertarget+\index{hypertarget@\verb+\hypertarget+} e cria link para ele, com o comando \verb+\hyperlink+\index{hyperlink@\verb+\hyperlink+}. +Veja o \url{https://en.wikibooks.org/wiki/LaTeX/Hyperlinks} para detalhes. + +Quando usa as fórmulas nos títulos, aparece ``lixo'' no indicador (\texttt{bookmarks}) do PDF. +Isto porque, no indicador, só o texto é aceito. +Para evitar isso, existe o comando \verb+\texorpdfstring+\index{textorpdfstring@\verb+\textorpdfstring+} que coloca conteúdo de \LaTeX{} ou texto, dependendo de estar no documento ou no \texttt{bookmarks}. + +Por exemplo, +\begin{singlespacing} +\begin{lstlisting} +\section{\texorpdfstring{$E=mc^2$}{E = mc ** 2}} +\end{lstlisting} +\end{singlespacing} + +Usará $E=mc^2$ para documento, mas \texttt{E = mc ** 2} para o indicador (\texttt{bookmarks}). + +Quando adicona um ítem manualmente no sumário através do comando \verb+\addcontentsline+\index{addcontentsline@\verb+\addcontentsline+}, o link do sumário pode não posicionar corretamente na página correta. +Para o funcionamento correto (posicionamento correto) do link no sumário requer que o \verb+\addcontentsline+ deve ser chamado logo em seguida da mudança de capítulo ou seção. +Caso não esteja, é só colocar \verb+\phantomsection+\index{phantomsection@\verb+\phantomsection+} oferecido pelo pacote \texttt{hyperref} antes do \verb+\addcontentsline+. + + +Note que ``\verb+"|+'' na entrada do índice remissivo para inserir o símbolo ``\verb+|+'' não funciona em conjunto com o pacote \texttt{hyperref}. +A forma de contornar isso é definir um comando para ``\verb+|+'' e usar na entrada do índice remissivo. + +% +%hyperref, +% +%\verb+\section{\texorpdfstring{$E=mc^2$}{E = mc ** 2}}+ para bookmark do PDF (hyperref)? Uso do comando \verb+\url{}+ no arquivo de BibTeX. + +\section{Trocando fontes} + +\LaTeX{} dispõe de diveras fontes gratuítos para diagramar o documento. +Em geral, usamos o \texttt{Latin Modern}\index{Latin Modern} que é extensão do \texttt{Computer Modern}\index{Computer Modern} para derivados de latim que tem letras acentuadas. +Para isso, é só carregat o pacote \texttt{lmodern}\index{lmodern} com o comando +\begin{singlespacing} +\begin{lstlisting} +\usepackage{lmodern} % latin modern +\end{lstlisting} +\end{singlespacing} +no preamble. + +Aqui, veremos algumas combinações que podem ser usadas, entre muitas opções. + +Concrete (texto e fórmula) +\begin{singlespacing} +\begin{lstlisting} +\usepackage{lmodern} % para complementar +\usepackage{ccfonts} % Concrete (serifa grossa?) +\end{lstlisting} +\end{singlespacing} + +Fonte \texttt{Times} pode ser escolhido com +\begin{singlespacing} +\begin{lstlisting} +\verb+\usepackage{newtxtext,newtxmath}+ +\end{lstlisting} +\end{singlespacing} + +A fonte \texttt{Palatino} com +\begin{singlespacing} +\begin{lstlisting} +\verb+\usepackage{newpxtext,newpxmath}+. +\end{lstlisting} +\end{singlespacing} + +A fonte \texttt{iwona} ideal para \texttt{poster} e \texttt{slides}. +\begin{singlespacing} +\begin{lstlisting} +\usepackage{lmodern} % para complementar +\usepackage[math]{iwona} % sans serif com transicao gosso fino, \end{lstlisting} +\end{singlespacing} + +Fonte \texttt{Schoolbook L} +\begin{singlespacing} +\begin{lstlisting} +\usepackage{lmodern} % para complementar +\usepackage{fouriernc} % schoobook L: Serifa grossa? +\end{lstlisting} +\end{singlespacing} + +A fonte \texttt{} (estilo compatível com \texttt{Times New Roman}) +\begin{singlespacing} +\begin{lstlisting} +\usepackage{newtxtext} % para complementar +\usepackage{stix} % compativel com New Times Roman +\end{lstlisting} +\end{singlespacing} + +Note que, para complementar a fonte como do \texttt{amssymb}, deve carregar antes do pacote de fontes desejadas. +Quando vários pacotes de fontes são carregados e tiver conflitos, o que vale é do pacote carregado por último. + +Também existem pacotes de fontes que acrescentam comandos para fontes adicionais. +Por exemplo, o pacote \texttt{dsfont} adiciona o comando \verb+\mathds+ para fonte ``negrito de quadro negro'' alternativo usado dentro das fórmulas. +Da forma análoga, o pacote \texttt{calligra}\index{calligra} acrescenta o comando \verb+\textcalligra+\index{textcalligra@\verb+\textcalligra+} para textos na fonte caligráfica. + +Para ver as fontes livres do \LaTeX{} e os pacotes correspondentes, veja o site \url{http://www.tug.dk/FontCatalogue/}. + +\section{Figuras e similares} + +As vezes queremos que o elemento flutuante (figuras e tabelas) sejam inseridas exatamente no lugar onde foi colocado. +Para isso, existe o pacote \texttt{float}\index{float} que fornece a opção extra ``H''\index{float!H} nas figuras e tabelas na qual impede de auto posicionar (manter no lugar). +Para usar, é só carregar o pacote no \texttt{preamble} e usar o ``H'' como opção de posicionamento das figuras e tabelas que querem que fiquem no lugar. +Outro recurso do acote \texttt{float} é alterar algumas configurações do elemento flutuante (como colocar moldura nas figuras), e criar um novo elemento flutuante. +Veja o Exemplo~\ref{ex14:float} + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex11-06.tex},label=ex:11-06] +\begin{ltxlisting}[caption={ex14-float.tex},label=ex14:float] +\begin{figure}[H] % No lugar +\centering +\begin{tikzpicture} +\draw (0,0) -- (1,0) -- (0.5, 0.5) -- cycle; +\end{tikzpicture} +\caption{Figura em onde foi inserido} +\end{figure} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +Para colocar subfiguras ou subtabelas, use o pacote \texttt{subcaption}\index{subcaption}. +Tendo \verb+\usepackage{subcaption}+ no \texttt{preamble}, podemos produzir sub figuras e sub tabelas facilmente. +Veja o Exemplo~\ref{ex14:subcaption}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex11-06.tex, parte b},label=ex:11-06:b] +\begin{ltxlisting}[caption={ex14-subcaption.tex},label=ex14:subcaption] +\begin{figure}[hbp!] + \centering + \begin{subfigure}[t]{0.45\linewidth} + \centering + Sub figura aqui. + \caption{sub título 1} + \end{subfigure}% + ~ + \begin{subfigure}[t]{0.45\linewidth} + \centering + Segunda sub figura aqui. + \caption{sub título 2} + \end{subfigure} + \caption{Uso de sub figura} +\end{figure} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +Se a classe/pacote conflitar com \texttt{subcaption}, poderá optar pelo pacote \texttt{subfig}\index{subfig}. + +Para que o texto contorne as figuras ou tabelas, poderá usar o pacote \texttt{wrapfig}\index{wrapfig} ou \texttt{floatflt}\index{floatflt}. +O Exemplo~\ref{ex14:wrapfig} ilustra o uso de \texttt{wrapfig}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex11-06.tex, parte c},label=ex:11-06:c] +\begin{ltxlisting}[caption={ex14-wrapfig.tex},label=ex14:wrapfig] +\begin{wrapfigure}{l}{0.3\linewidth} +\centering +\begin{tikzpicture} +\draw (0,0) rectangle (3,1); +\end{tikzpicture} +\caption{Figura com texto contornando} +\end{wrapfigure} +A figura deve ser colocado dentro do ambiente wrapfigure. No exemplo, ``l'' significa left (esquerda) que posiciona a figura a esquerda (e texto a direita). Se colocar o ``r'' (right), a figura ficará a direita. O próximo parâmetro é a largura reservada para figura que foi 30\% da largura da linha. +Note que são contadas junto as outras figuras. +Se pretende colocar tabela com texto em torno dele, use o ambiente \texttt{wraptable}, também do pacote \texttt{wrapfig}. +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +Quando tem figura ou table muito larga, precisará rotacionar a página. +Isto pode ser feito pelo pacote \texttt{pdflscape}\index{pdflscape}. + +Para que uma página fique rotacionada, coloque dentro do ambiente \texttt{landscape}\index{landscape}. +Note que, para rotacionar tabelas longas que pode ocupar mais de uma página, deverá usar o pacote \texttt{rotating}\index{rotating}. +Veja o Exemplo~\ref{ex14:pdflscape}. + +\begin{singlespacing} +%\begin{lstlisting}[caption={ex11-06.tex, parte d},label=ex:11-06:d] +\begin{lstlisting}[caption={ex14-pdflscape.tex},label=ex14:pdflscape] +\begin{landscape} +\center +\begin{figure}[H] +\center +\begin{tikzpicture} +\draw[fill=gray!20] (0,0) -- (\linewidth,0) -- (\linewidth,5) -- (0, 5) -- cycle; +\end{tikzpicture} +\caption{Figura larga rotacionada} +\end{figure} +\end{landscape} +\end{lstlisting} +\end{singlespacing} +% +%\noindent +%\fbox{\begin{minipage}{\linewidth} +\begin{ltxlistingout} +\center +\rotatebox{-90}{\begin{minipage}{0.5\linewidth} +\center +\begin{tikzpicture} +\draw[fill=gray!20] (0,0) -- (\linewidth,0) -- (\linewidth,5) -- (0, 5) -- cycle; +\end{tikzpicture} +{Figura: Figura larga rotacionada} +\end{minipage}} +\end{ltxlistingout} +%\end{minipage}} + +% +%float, OK +%wrapfig (ou floatflt), OK +%subfigure, OK. +% +% +%rotating (sideways,sidewaysfigure,sidewaystable) ou lscape/pdflscape? OK + +\section{Escrevendo medidas internacionais} + +Para escrever medidas, requer alguns cuidados tais como usar letra romana reta (por ser abreviatura da palavra), ter pequeno espaço entre valor e medida, entre outros. +Por exemplo, $\SI{10}{\kilo\gram}$ e não $10kg$, $\SI{5}{\litre}$ e não $5l$ e assim por diante. + + +Para facilitar a escrever unidades de medidas corretamente no documento, o \texttt{siunitx}\index{siunitx} providencia comandos para escrever na unidade internacional. + +Para produzir o número rapidamente, tem o comando \verb+\num+\index{num@\verb+\num+}. +O comando \verb+\ang+\index{ang@\verb+\ang+} gera ângulos rapidamente. +Para exemplos a seguir, será assumido que foi carregado o pacote \texttt{siunitx} no \texttt{preamble} +Veja o Exemplo~\ref{ex14:num}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex11-09.tex},label=ex:11-09] +\begin{ltxlisting}[caption={ex14-num.tex},label=ex14:num] +Números + +\num{12345.67890} \\ % espacando de 3 em 3 casas +\num{12345,67890} \\ % ``,'' também pode ser usado para decimal +\num{1+-2i} \\ % ``+-'' vira $\pm$ +\num{.3e45} \\ % notacao cientifica +\num{1.654 x 2.34 x 3.430} % ``x'' vira $\times$ + +Ângulos + +\ang{10} \\ % grau +\ang{5.3} \\ % grau com decimal +\ang{-1,5} \\ % ``,"" também pode ser usado como decimal +\ang{1;2;3} \\ % grau, minuto e segundo +\ang{;;1} \\ % so o segundo +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +O comando \verb+\si+\index{si@\verb+\si+} produz unidade de medida de acordo com o seu parâmetro. +A configuração de saída pode ser efetuado pelo parâmetro opcional. +O \verb+\si+ assim como \verb+\num+ e \verb+\ang+, funciona tanto no modo texto como modo matemático. + +Em geral, coloca-se pequeno espaço entre valor e medida. +O comando \verb+\SI+\index{SI@\verb+\SI+} automatiza isto, além de poder colocar símbolo antes do valor. + +Ele tem a forma +\verb+\SI[opção]{valor}[simbolo anterior]{unidade}+ +Veja o Exemplo~\ref{ex14:si}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex11-09.tex, parte b},label=ex:11-09:b] +\begin{ltxlisting}[caption={ex14-si.tex},label=ex14:si] +Entrada literal (Neste modo, não há opção de formatação). + +\si{kg.m/s^2} \\ +\si{g_{polymer}~mol_{cat}.s^{-1}} + +Entrada pelo macro (permite configurar a formatação usando opção do comando ou do parâmetro do pacote). + +\si{\kilo\gram\per\square\second} \\ +\si{\gram_{polymer}\mol_{cat}\per\second} + +Mais exemplos\\ +\si{\kilo\gram\metre\per\square\second} \\ +\si{\gram\per\cubic\centi\metre} \\ +\si{\square\volt\cubic\lumen\per\farad} \\ +\si{\metre\squared\per\gray\cubic\lux} \\ +\si{\henry\second} + +Medidas com valor + +\SI{1.23}{J.mol^{-1}.K^{-1}} \\ % modo textual +\SI{.23e7}{\candela} \\ % como macros +\SI{1.99}[R\$]{\per\kilogram} \\ % com simbolo antes +\SI{1,345}{\coulomb\per\mole} % outro exemplo +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +Alguma das medidas padrão são: +\verb+\ampere+\index{si!ampere@\verb+\ampere+}, \verb+\candela+\index{si!candela@\verb+\candela+}, \verb+\kelvin+\index{si!kelvin@\verb+\kelvin+}, \verb+\kilogram+\index{si!kilogram@\verb+\kilogram+}, \verb+metre+\index{si!metre@\verb+\metre+} ou \verb+meter+\index{si!meter@\verb+\meter+}, +\verb+\mole+\index{si!mole@\verb+\mole+}, \verb+\second+\index{si!second@\verb+\second+}, \verb+\litre+\index{si!litre@\verb+\litre+}, \verb+\celsius+\index{si!celsius@\verb+\celsius+}, \verb+\percent+\index{si!percent@\verb+\percent+}}, etc que são extensos. +Para saber, consulte o manual. + +Para conversão de medidas, +\verb+\giga+\index{si!giga@\verb+\giga+}, \verb+\mega+\index{si!mega@\verb+\mega+}, \verb+\kilo+\index{si!kilo@\verb+\kilo+}, \verb+\hecto+\index{si!hecto@\verb+\hecto+}, \verb+\deca+\index{si!deca@\verb+\deca+}, \verb+\deci+\index{si!deci@\verb+\deci+}, \verb+\centi+\index{si!centi@\verb+\centi+}, \verb+\milli+\index{si!milli@\verb+\milli+}, \verb+\micro+\index{si!micro@\verb+\micro+}, \verb+\nano+\index{si!nano@\verb+\nano+}, etc. são disponíveis. + +Exemplo: \verb+\SI{20}{\kilo\gram}+ e mesmo que \verb+\SI{20}{\kilogram}+. + +Para operar, tem o \texttt{per, square}, etc. + +\verb+\SI{30}{\kilo\meter\per\square\second}+ +é mesmo que +\verb+\SI{30}{\kilo\meter/\second^2}+ +no modo padrão, mas o segundo não consegue controlar a formatação por usar forma literal em ``/'' e ``\verb+^2+''. + +A configuração geral de formatação pode ser feito pela opção do pacote ou pelo comando \verb+\sisetup+\index{sisetup@\verb+\sisetup+}, mas também pode especificar localmente como no Exemplo~\ref{ex14:sisetup}. + + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex11-09.tex, parte c},label=ex:11-09:c] +\begin{ltxlisting}[caption={ex14-sisetup.tex},label=ex14:sisetup] +\SI[mode=text]{30}{\kilo\meter\per\square\second} + +\SI[per-mode=power]{30}{\kilo\meter\per\square\second} + +\SI[per-mode=symbol]{30}{\kilo\meter\per\square\second} + +\SI[per-mode=fraction]{30}{\kilo\meter\per\square\second} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +\section{Enfeites e código fontes} +Para enfeitar o documento, como colocar moldura nos elementos, usamos pacotes adicionais, exceto molduras simples fornecidos pelo \verb+\fbox+\index{fbox@\verb+\fbox+}. + +O pacote \texttt{fancybox}\index{fancybox} oferece caixas com molduras extras tais como \verb+\shadowbox+\index{shadowbox@\verb+\shadowbox+} (com sombra), \verb+doublebox+\index{doublebox@\verb+\doublebox+} (moldura dupla) e \verb+\ovalbox+\index{ovalbox@\verb+\ovalbox+} (moldura com quinas arredondadas). + +Note que \verb+\shadowbox+ não permite controlar a cor da sombra. +Se quer caixas personalizadas, deverá usar o pacote gráfico tal como o \texttt{tikz}. +Veja o Exemplo~\ref{ex14:fancybox}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex11-08.tex},label=ex:11-08] +\begin{ltxlisting}[caption={ex14-fancybox.tex},label=ex14:fancybox] +\shadowbox{Caixa com sombra} + +\doublebox{Caixa com moldura dupla} + +\ovalbox{Caixa com quina arredondada} + +\Ovalbox{Outra caixa com quina arredondada} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +Lembre-se que se o conteúdo tiver parágrafo, deverá usar em conjunto com o \texttt{minipage} +Também permite colocar conteúdo ou moldura na página com comandos tais como \verb+\fancyput+\index{fancyput@\verb+\fancyput+}, \verb+\thisfancyput+\index{thisfancyput@\verb+\thisfancyput+}, \verb+\fancypage+\index{fancypage@\verb+\fancypage+} e \verb+\thisfancypage+\index{thisfancypage@\verb+\thisfancypage+}. + +Por exemplo, o código +\begin{singlespacing} +\begin{lstlisting} +\thisfancypage{% +\setlength{\fboxsep}{8pt}% +\setlength{\shadowsize}{8pt}% +\shadowbox}{} +\end{lstlisting} +\end{singlespacing} +acrescenta moldura com sombra na página atual. + +Para colocar moldura nos conteúdos longos que pode ocupar mais de uma página, podemos usar o pacote \texttt{framed}\index{framed}. +Para colocar cor de fundo, deverá definir a cor do fundo \texttt{shadecolor}\index{shadowcolor}. +Para isso, é recomendado usar o pacote \texttt{xcolor} visto na Seção~\ref{sec:xcolor} do Capítulo~\ref{chap:xcolor:tikz} (não é o pacote \texttt{color}) que tem facilidade de manipulação de cores. +Assim, para executar o código do Exemplo~\ref{ex14:framed}, deverá carregar tando o pacote \texttt{framed} como o \texttt{xcolor}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex11-08.tex, parte b},label=ex:11-08:b] +\begin{ltxlisting}[caption={ex14-framed.tex},label=ex14:framed] +\begin{framed} +O texto com moldura pode ser produzido facilmente com o pacote \texttt{framed}. +\end{framed} + +\colorlet{shadecolor}{black!15} % cor do fundo usando xcolor +\begin{shaded*} +O texto com fundo pode ser produzido facilmente com o pacote \texttt{framed}. +\end{shaded*} + +\begin{leftbar} +O ambiente \texttt{leftbar} coloca traço no lado esquerdo do texto. +\end{leftbar} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +O comando \verb+\colorlet+\index{colorlet@\verb+\colorlet+} do pacote \texttt{xcolor} permite definir cor a partir das cores existentes. +\verb+black!15+ é 15\% de preto. + +Note que, diferente das caixas padrão do \LaTeX{} ou do pacote graphicx, os ambientes do \texttt{framed} podem quebrar em linhas e em páginas. + +Para indicar as correções a serem efetuadas, é útil ter linhas enumeradas. +Para enumerar as linhas do documento, usa-se o pacote \texttt{lineno}\index{lineno}. + +Para que as fórmulas também sejam enumeradas, use +\begin{singlespacing} +\begin{lstlisting} +\usepackage[mathlines]{lineno} +\end{lstlisting} +\end{singlespacing} +no \texttt{preamble}. +Os comandos \verb+\linenumbers+\index{linenumbers@\verb+\linenumbers+} e \verb+\nolinenumbers+\index{nolinenumbers@\verb+\nolinenumbers+} são usados para ativar/desativar as enumerações. +Se pretende enumerar todo documento, coloque \verb+\linenumbers+ no \texttt{preamble}. +Para enumerar a cada ``'' linhas,use \verb+\modulolinenumbers[]+\index{modulolinenumbers@\verb+\modulolinenumbers+}. +Veja o Exemplo~\ref{ex14:lineno}. + +%\begin{singlespacing} +%\setlength{\linenumbersep}{0pt} % default is 10pt +%\begin{internallinenumbers} +%\begin{lstlisting}[caption={ex12-06.tex},label=ex:12-06] +\begin{lstlisting}[caption={ex14-lineno.tex},label=ex14:lineno] +\linenumbers % ativa a enumeracao das linhas +\modulolinenumbers[3] % enumerar de 3 em 3 + +\lipsum[1] % preencher + +\nolinenumbers % desativa a enumeração das linhas +\lipsum[1] % 1 paragrafos + +% enumerando so um trecho. +\resetlinenumber % reset the line number +\modulolinenumbers[1] % enumerar todas +\begin{linenumbers} + \lipsum[2] % 2 paragrafos +\end{linenumbers} +\end{lstlisting} +%\end{lstlisting} +%%\end{internallinenumbers} +%\end{singlespacing} +% +\begin{singlespacing} +\noindent +\fbox{\parbox{\linewidth-0.8em}{\hspace*{1em} +\begin{minipage}{\linewidth-1.8em} +%\setlength{\linenumbersep}{-5pt} % default is 10pt +\linenumbers % ativa a enumeracao das linhas +\modulolinenumbers[3] % enumerar de 3 em 3 +\begin{internallinenumbers} +\lipsum[1] % preencher +\end{internallinenumbers} +\nolinenumbers % desativa a enumeração das linhas +\lipsum[1] % 1 paragrafos + +% enumerando so um trecho. +\resetlinenumber % resset the line number +\modulolinenumbers[1] % enumerar todas +\begin{internallinenumbers} +%\begin{linenumbers} + \lipsum[2] % 3 paragrafos +%\end{linenumbers} +\end{internallinenumbers} +\end{minipage}}} +%\setlength{\linenumbersep}{10pt} % set to default +\end{singlespacing} + +No Exemplo~\ref{ex14:lineno} foi usado o comando \verb+\lipsum+\index{lipsum@\verb+\lipsum+} que gera textos aleatórios em grego para preencher as páginas para testes. +Logo, precisa carregar o pacote \texttt{lipsum}\index{lipsum} no \texttt{preamble} para que o exemplo funcione. + +Existem vários pacotes que permitem colocar conteúdos em todas páginas, como a marca d'agua. +Um deles é o \texttt{eso-pic}\index{eso-pic}. + +Por exemplo, o código + +\begin{singlespacing} +\begin{lstlisting} +% marca d'agua +\AddToShipoutPicture{% + \AtPageLowerLeft{% + \unitlength=\paperwidth + \begin{picture}(1.0,1.0) + \put(0.3,0.5){\rotatebox{45}{% + \scalebox{5}{\color{black!25}Rascunho}}% + } + \end{picture} + }% +}% +\end{lstlisting} +\end{singlespacing} +após carregar o pacote \texttt{eso-pic}, coloca a palavra ``Rascunho'' rotacionado por $45^\circ$ em todas as páginas como marca d'agua. +Note que, se quer colocar a imagem externa, basta usar o \verb+\includegraphics+. + +Para limpar o fundo, usa-se o \verb+\ClearShipoutPicture+\index{ClearShipoutPicture@\verb+\ClearShipoutPicture+}. + +Para colocar código fonte de um programa, costuma usar o pacote \texttt{listings}\index{listings} que implementa o ambiente \texttt{lstlisting}\index{lstlisting} que formata de acordo com a linguagem de programação escolhida. + +Ele já vem com configurações para diversas idiomas, tais como \texttt{Ada}, \texttt{Algol}, \texttt{Assember}, \texttt{awk}, \texttt{bash}, \texttt{Basic}, \texttt{C\#}, \texttt{C++}, \texttt{C}, \texttt{Cobol}, \texttt{Delphi}, \texttt{Fortran}, \texttt{Gnuplot}, \texttt{HTML}, \texttt{Java}, \texttt{Lisp}, \texttt{Logo}, \texttt{Lua}, \texttt{Make}, \texttt{Mathematica}, \texttt{Matlab}, \texttt{Metapost}, \texttt{Modula-2}, \texttt{Objective C}, \texttt{Octave}, \texttt{Pascal}, \texttt{Perl}, \texttt{PHP}, \texttt{Prolog}, \texttt{Python}, \texttt{R}, \texttt{Ruby}, \texttt{SAS}, \texttt{Scilab}, \texttt{sh}, \texttt{SQL}, \texttt{TeX}, \texttt{XML}, entre vários outros. +Se a linguagem pretendida não estiver na lista, poderá definir novos idiomas. + +Para o seu uso, costuma efetuar configurações iniciais no \texttt{preamble} com o comando \verb+\lstset+\index{lstset@\verb+\lstset+} e no ambiente de \texttt{lstlisting}, efetuar mais alguns ajustes se necessários. +Veja o Exemplo~\ref{ex14:listings} + +% Para listar o proprio lstlisting +\lstnewenvironment{lstlistinginside} {} {} + +\begin{singlespacing} +\refstepcounter{lstlisting}\label{ex14:listings} +\addcontentsline{lol}{section}{\thelstlisting: ex14-listings.tex} +\begin{center}\lstlistingname~\thelstlisting: ex14-listings.tex\end{center} +\vspace*{-1.5\baselineskip} +\begin{lstlistinginside} +\begin{lstlisting}[language=Pascal,caption={Alô pessoal}] +program teste; +{ Programa de teste } +begin + writeln('Alo, pessoal!'); +end. +\end{lstlisting} +\end{lstlistinginside} +\end{singlespacing} +% +\noindent +\begin{singlespacing} +\begin{framed} +\begin{center}Listing 1: Alô Pessoal\end{center} +\vspace{-1.6\baselineskip} +\noindent\hrulefill \\ +\textbf{program} teste; \\ +\emph{\{ Programa de teste \}} \\ +\textbf{begin} \\ +\hspace*{1em} \textbf{writeln}('Alo, pessoal!'); \\ +\textbf{end}. \\ +\vspace{-0.5\baselineskip} +\hrule %{\linewidth} \\ +\end{framed} +\end{singlespacing} + +% +%%\let\oricaption\caption +%\begin{singlespacing} +%\begin{center} +%\refstepcounter{lstlisting} +%\addcontentsline{lol}{section}{\thelstlisting: ex14-listings.tex} +%\lstlistingname~\thelstlisting: ex14-listings.tex\label{ex14:listings} +%\end{center} +%\vspace*{-1.2em} +%\noindent\hrulefill \\ +%\vspace*{-0.2em} +%\colorbox{yellow!50}{teste} +%%\vspace*{-2.5em} +%\colorlet{shadecolor}{yellow!50} +%\begin{shaded} +%\begin{verbatim} +%\begin{lstlisting}[language=Pascal,caption={Alô pessoal}] +%program teste; +%{ Programa de teste } +%begin +% writeln('Alo, pessoal!'); +%end. +%\end{lstlisting} +%\end{verbatim} +%\end{shaded} +%\vspace{-1.2em} +%\noindent\hrulefill\end{singlespacing} +% +%\noindent +% +%\let\addcontentsline\emptyaddcontentsline +%\setcounter{orilstlisting}{\value{lstlisting}} +%\setcounter{lstlisting}{0} +%%\setcounter{lstorichapter}{\value{chapter}} +%\setcounter{lstorichapter}{\value{chapter}} +%\setcounter{chapter}{1} +%\let\currentlstlistingname\lstlistingname +%\let\lstlistingname\orilstlistingname +%% \fbox com lstlisting esta dando erro +%% usando framed +%\begin{framed} +%%\begin{minipage}{\linewidth-\parindent}%\hspace*{-\parindent} +%\begin{lstlisting}[language=Pascal,caption={Alô pessoal},style=lstexample] +%program teste; +%{ Programa de teste } +%begin +% writeln('Alo, pessoal!'); +%end. +%\end{lstlisting} +%%\end{minipage}% +%\end{framed} +%\setcounter{chapter}{\value{lstorichapter}} +%\setcounter{lstlisting}{\value{orilstlisting}} +%\let\lstlistingname\currentlstlistingname +%\let\addcontentsline\oriaddcontentsline + +A formatação de saída depende da configuração do \texttt{lstlisting}. +A saída do Exemplo~\ref{ex14:listings} foi pela configuração +\begin{singlespacing} +\begin{lstlisting} +\lstset{ + numbers=none, + breaklines=true, + breakautoindent=true, + aboveskip=2ex, + columns=fullflexible, % para poder copiar codigo do PDF + frame=lines, %none, single, line +} +\end{lstlisting} +\end{singlespacing} + +Note o uso de \texttt{columns=fullflexible} para que o código fonte copiado do PDF não fique bagunçado. + +Para o arquivo externo, podemos usar o comando \verb+\lstinputlisting+\index{lstinputlisting@\verb+\lstinputlisting+} que carrega o código diretamente do arquivo fonte. +%\lstinputlisting{test-code} + +Note que \texttt{listings} não tem suporte nativo a \texttt{utf8}. +Portanto, quando usa os caracteres acentuadas, deverá tomar cuidados. +Para o \verb+\lstinputlisting+ funcione no \texttt{utf8}, basta carregar o pacote \texttt{listingsutf8}\index{listingsutf8}, mas para o código colocado diretamente no ambiente \texttt{lstlisting}, deverá criar tabela de caracteres unicode correspondente. +Para não ter tal trabalho, poderá executar no \XeLaTeX{} ou Lua\LaTeX{} em que tem total suporte a unicode. + +Quando queremos colocar o trecho do código de \LaTeX{} juntamente com a sua saída, o pacote \texttt{showexpl}\index{showexpl} é prático. +Ele usa o pacote \texttt{listings} para listar o código fonte. +A configuração inicial é feito com \verb+\lstset{explpreset={...}}+ no \texttt{preamble}. +O ambiente \texttt{LTXexample}\index{LTXexample} aceitam os parâmetros do \texttt{lstlisting} e também o \texttt{pos} e \texttt{preset} que especificam a posição onde colocar a saída, e a configuração inicial antes de executar o código. +Veja o Exemplo~\ref{ex14:showexpl}. + +\begin{singlespacing} +%\begin{lstlisting}[caption={ex11-10, parte b}, label=ex:11-10:b] +\begin{lstlisting}[caption={ex14-showexpl.tex}, label=ex14:showexpl] +\begin{LTXexample}[pos=b,caption={\LaTeX}] +% comentario +Teorema de Pitágoras afirma que +\[ a^2 = b^2+c^2 \] +\end{ltxlisting} +\end{lstlisting} +\end{singlespacing} +% +% +%\let\mathbb\amsmathbb +%\let\addcontentsline\emptyaddcontentsline +\setcounter{orilstlisting}{\value{lstlisting}} +\setcounter{lstlisting}{0} +%%\setcounter{lstorichapter}{\value{chapter}} +%\setcounter{lstorichapter}{\value{chapter}} +%\setcounter{chapter}{1} +\let\currentlstlistingname\lstlistingname +\let\lstlistingname\orilstlistingname +% \fbox com lstlisting esta dando erro +% usando framed +\begin{ltxlistingout} +%\begin{minipage}{\linewidth-\parindent}%\hspace*{-\parindent} +\begin{LTXexample}[pos=r,caption={\LaTeX},style=lstexample] +% comentario +Teorema de Pitágoras afirma que +\[ a^2 = b^2+c^2 \] +\end{LTXexample} +%%\end{minipage}% +\end{ltxlistingout} +%\setcounter{chapter}{\value{lstorichapter}} +\setcounter{lstlisting}{\value{orilstlisting}} +\let\lstlistingname\currentlstlistingname +%\let\addcontentsline\oriaddcontentsline +%\let\mathbb\orimathbb + +O valor de ``\texttt{pos}'' que determina onde ficará a saída do resultado do código em relação ao do código fonte, podem ser +``t'', ``b'', ``l'', ``r'' ,``o'' ou ``i'', que são +abreviaturas de ``top'' (encima), ``bottom'' (embaixo), ``left'' (esquerda), ``right'' (direita), ``outer'' (lado de fora) e ``inner'' (lado de dentro). + +Note que o \verb+\usepackage+ e similar estão desabilitados dentro do ambiente \texttt{LTXexample} e se o código precisar, deverá estar carregado no \texttt{preamble} do documento principal. +Agora outro exemplo, supondo que \texttt{amssymb} está carregado no documento principal (para usar \verb+\mathbb+). +Veja oExemplo~\ref{ex14:showexpl:completo}. + +\begin{singlespacing} +%\begin{lstlisting}[caption={ex11-10, parte c}, label=ex:11-10:c] +\begin{lstlisting}[caption={ex14-showexpl-completo}, label=ex14:showexpl:completo] +\begin{LTXexample}[pos=b,caption={\LaTeX{} completo}] +\documentclass{article} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage[brazil]{babel} +\usepackage{amssymb,amsmath} +\newcommand{\sen}{\mathrm{sen}} +\begin{document} +% comentario +\[ \forall \theta \in \mathbb{R}, \cos^2\theta + \sen^2\theta = 1 \] +\end{document} +\end{LTXexample} +\end{lstlisting} +\end{singlespacing} +% +% +%\let\mathbb\amsmathbb +%\let\addcontentsline\emptyaddcontentsline +\setcounter{orilstlisting}{\value{lstlisting}} +\setcounter{lstlisting}{1} +%\setcounter{lstorichapter}{\value{chapter}} +%\setcounter{lstorichapter}{\value{chapter}} +%\setcounter{chapter}{1} +\let\currentlstlistingname\lstlistingname +\let\lstlistingname\orilstlistingname +% \fbox com lstlisting esta dando erro +% usando framed +\begin{ltxlistingout} +%\begin{minipage}{\linewidth-\parindent}%\hspace*{-\parindent} +\begin{LTXexample}[pos=b,caption={\LaTeX{} completo},style=lstexample] +\documentclass{article} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage[brazil]{babel} +\usepackage{amssymb,amsmath} +\newcommand{\sen}{\mathrm{sen}} +\begin{document} +% comentario +\[ \forall \theta \in \mathbb{R}, \cos^2\theta + \sen^2\theta = 1 \] +\end{document} +\end{LTXexample} +%\end{minipage}% +\end{ltxlistingout} +%\setcounter{chapter}{\value{lstorichapter}} +\setcounter{lstlisting}{\value{orilstlisting}} +\let\lstlistingname\currentlstlistingname +%\let\addcontentsline\oriaddcontentsline +%\let\mathbb\orimathbb + + +% +%fancybox, OK +%framed, OK +%lineno, OK +%eso-pic, OK +% +%listings, OK +%showexl, OK + +\section{Mais sobre referências bibliográficas} + +Na citação original do \LaTeX, usa-se o mesmo padrão tanto para caso de fazer parte do texto (citação textual) ou não fazer parte do texto (citação dentro de parenteses). +Para fazer esta distinção e controlar melhor a forma de citação, foi desenvolvido o pacote chamado \texttt{natbib}\index{natbib}. + +O pacote \texttt{natbib} possui comandos \verb+\citet+\index{citet@\verb+\citet+}, usado para citações textuais e \verb+citep+\index{citep@\verb+\citep+} para citações entre parenteses (ele já coloca parenteses automaticamente). + +Além disso, o \texttt{natbib} permite configurar a formatação de citações. +Veja o Exemplo~\ref{ex14:natbib} + +\begin{singlespacing} +%\begin{lstlisting}[pos=b,caption={ex12-08},label=ex:12-08] +\begin{lstlisting}[caption={ex14-natbib.tex},label=ex14:natbib] +Para que a citação faça parte do texto (estilo textual), usa-se o comando \verb+\citet+ como em ``Por exemplo, \citet{IndianTUG:2000, Goossens:94} explica como usar o BibTeX''. + +Para que ele não faça parte do texto, usa-se o \verb+\citep+ Como em ``\ldots recursos avançados de BibTeX \citep[Cap.~13]{Goossens:94}''. +\end{lstlisting} +\end{singlespacing} + +%\begin{framed} +%\begin{singlespacing} +\begin{ltxlistingout} +%\begin{minipage}{\linewidth-\parindent}%\hspace*{-\parindent} +Para que a citação faça parte do texto (estilo textual), usa-se o comando \verb+\citet+ como em ``Por exemplo, Team (2000); Goossens et al. (1994) explica como usar o BibTeX''. + +Para que ele não faça parte do texto, usa-se o \verb+\citep+ Como em ``\ldots recursos avançados de BibTeX (Goossens et al., 1994, Cap. 13)''. +%\end{minipage}% +\end{ltxlistingout} +%\end{singlespacing} +%\end{framed} + +A saída da referência correspondente ao código do Exemplo~\ref{ex14:natbib} no caso do estilo \texttt{apalike} é + +%\let\addcontentsline\emptyaddcontentsline +%\begin{framed} +%\begin{singlespacing} +%% \newcommand{\sortnoop}[1]{} \newcommand{\swapargs}[2]{#2#1} +\begin{ltxlistingout} +\begin{thebibliography}{} + +\bibitem[Goossens et~al., 1994]{Goossens:94} +Goossens, M., Mittelbach, F., and Samarin, A. (1994). +\newblock {\em The {\LaTeX{}} Companion}. +\newblock Adilson--Wesley, Reading, MA. + +\bibitem[Oeticker et~al., 2002]{Oeticker:94} +Oeticker, T., Partl, H., Hyna, I., and Schlegl, E. (2002). +\newblock {\em The Not So Short Introduction to {\LaTeXe{}}}. +\newblock Comprehensive {\TeX{}} Archive Network. + +\bibitem[Team, 2000]{IndianTUG:2000} +Team, T. (2000). +\newblock {\em Online Tutorials on {\LaTeX{}}}. +\newblock Indian {\TeX{}} User Group. +\newblock {\url{http://www.tug.org/tutorials/tugindia/}}. +\end{thebibliography} +\end{ltxlistingout} +%\end{singlespacing} +%\end{framed} +%\let\addcontentsline\oriaddcontentsline + +O \verb+\cite+ tradicional também estará disponível, funcionando como \verb+\citet+. + +Usando a opção do pacote ou comandos apropriados, podermos configurar o estilo de citações. + +Note que nos estilos antigos, os campos tais como ``url'' e ``doi'' não serão usadas (logo, não aparecem nas referencias). +Para que \texttt{URL} apareça na referência desses estilos antigos, colocavam no campo ``note''. + +Para estilos mais modernos como do \texttt{natbib}, o URL deve ser colocado no campo ``\texttt{url}'' e ``note'' pode ser usado para outra finalidade tal como colocar a data de último acesso. + +Para criar próprio arquivo de estilo \texttt{bst}, +comece gerando um modelo com \texttt{makebst}\index{makebst} do \texttt{custom-bib}\index{custom-bib}. + +Estilo padrão do \texttt{natbib} são \texttt{plainnat}\index{natbib!plainnat}, \texttt{abbrvnat}\index{natbib!abbrvnat}, \texttt{unsrtnat}\index{natbib!unsrtnat}. +Tambem suporta varios \texttt{bst} de outros pacotes +com estilo \texttt{autor-ano}. +\texttt{apalike}\index{natbib!apalike}, \texttt{newapa}\index{natbib!newapa}, (\texttt{chicago}\index{natbib!}chicago, \texttt{named}\index{natbib!named}, etc do \texttt{chicago}), +(\texttt{agsm}\index{natbib!agsm}, \texttt{dcu}\index{natbib!dcu}, \texttt{kluwer}\index{natbib!kluwer}, etc do \texttt{harvard}), +(\texttt{astron}\index{natbib!astron}, \texttt{apa}\index{natbib!apa}, \texttt{humanbio}\index{natbib!humanbio}, etc do \texttt{astron}), +(\texttt{authordate}\index{natbib!authordate} e \texttt{aaai-named}\index{natbib!aaai-named} do \texttt{authordate}). + +Note que \texttt{bst} não compatíveis com \texttt{autor-ano}, como o estilo padrão do \BibTeX{} será considerado como numérico. + +%%%%%%%%%% biblatex + +O \texttt{biblatex}\index{biblatex} suporta o arquivo \texttt{bib} em \texttt{utf8}, permitindo que tenha citações dos livros em caracteres fora do \texttt{latin} e também suporta a localização da referência bibliográfica. + +Outro ponto positivo é ter maior facilidade de elaborar arquivo de estilos. + +O \texttt{biblatex} não é compatível com maioria dos pacotes específicos pata \BibTeX. +Também terá problemas com o pacote \texttt{titlesec} quando usar as opções \texttt{refsection}, \texttt{refsegment} ou \texttt{citereset} no \texttt{biblatex}. + +Note que, caso não tenha estilo de referência bibliográfica desejado, o truque de copiar o conteúdo do arquivo \texttt{bbl} (extensão \texttt{bbl}) e ajustar, mas isto não funciona no \texttt{biblatex}, pois ele não usa o ambiente \texttt{thebibliography}. +Isto vale mesmo que use \BibTeX{} como \texttt{backend}. +Como nem toda revista dispõe de estilos para \texttt{biblatex} (mesmo tendo estilo para \texttt{bibtex}), fique atento nesta parte para decidir se vai usar o \BibTeX{} direto, ou usar o \texttt{biblatex}. + +Quando carrega o pacote \texttt{biblatex}, efetua algumas configurações. + +\begin{singlespacing} +\begin{lstlisting} +\usepackage[ + backend=biber, + bibencoding=utf8, +% natbib=true, % natbib compatible mode (citep, citet, etc) + style=authoryear, +]{biblatex} +\end{lstlisting} +\end{singlespacing} + +Carrega o \texttt{biblatex} configurado para usar \texttt{biber}\index{biber} como processador de referências bibliográficas. +Se usar o \texttt{bibtex} em vez do \texttt{biber}, perderá os recursos estendidos tais como suporte a \texttt{utf8} e localização da referência bibliográfica. +Também foi indicado que o arquivo \texttt{bib} está em \texttt{utf8}, podendo conter caracteres unicode (fora do \texttt{latin}, por exemplo). +A opção \texttt{natbib} está comentado, mas se ativar, terá disponibilidade para usar comandos \verb+\citet+ e \verb+\citep+ similar a do \texttt{natbib}. +Finalmente, o estilo escolhido é \texttt{authoryear}. + +Para indicar os arquivos \texttt{bib}, usa-se o comando \verb+\addbibresource{}+\index{addbibresource@\verb+\addbibresource+} que costuma estar no \texttt{preamble}, onde \texttt{} é nome do arquivo \texttt{bib}. +Caso quer indicar vários arquivos \texttt{bib}, deverá colocar um \verb+\addbibresource+ para cada arquivo \texttt{bib}. + +Após efetuar citações normalmente no documento, coloca-se o comando +\verb+\printbibliography+\index{printbibliography@\verb+\printbibliography+} +no lugar onde quer que apareça a referência bibliográfica. + +Se quer que a referência bibliográfica conste no sumário, coloque +\begin{singlespacing} +\begin{lstlisting} +\phantomsection % se estiver usando o hyperref +\printbibliography[heading=bibintoc] +\end{lstlisting} +\end{singlespacing} +onde \verb+aphantomsection+\index{phantomsection@\verb+\phantomsection+} é necessário somente quando usa o pacote \texttt{hyperref} para que o link do sumário para a referência bibliográfica aponte para página correta. + +O estilo padrão do \texttt{biblatex} são \texttt{numeric}\index{biblatex!numeric}, \texttt{alphabetic}\index{biblatex!alphabetic}, \texttt{authoryear}\index{biblatex!authoryear}, \texttt{authortitle}\index{biblatex!authortitle}, \texttt{verbose}\index{biblatex!verbose}, \texttt{reading}\index{biblatex!reading} e \texttt{draft}\index{biblatex!draft}, mas existem muitos outros disponíveis em \url{https://ctan.org/tex-archive/macros/latex/exptl/biblatex-contrib}. + +Para quem pretende criar o estilo novo, note que no \texttt{biblatex} deve implementar tanto o estilo de referências (como será impresso na referências) com o estilo de citações (como aparece dentro do texto). + +%natbib, +%biblatex + +\clearpage\thispagestyle{empty}\cleardoublepage +\chapter{Gráfico e Diagramas}\label{chap:xcolor:tikz} +Os recursos do ambiente \texttt{picture} do \LaTeX{} é bastante limitado, mesmo que use o pacote \texttt{pict2e}. +Assim, costumamos usar os pacotes fora do \texttt{base} e \texttt{required} como o \texttt{tikz}. +Neste capítulo, vamos estudar alguns pacotes relacionados aos gráficos, que não são da \texttt{base} e \texttt{required}. + +\section{Misturando cores}\label{sec:xcolor} +O pacote de cores mais recomendados é o \texttt{xcolor}\index{xcolor} que estende a funcionalidade do pacote \texttt{color}. +Uma das extensões mais importantes do \texttt{xcolor} é capacidade de especificar a quantidade de cores e permitir misturar cores. + +Para misturar cores\index{misturar cores}, use o ``!'' seguido de percentual. +Por exemplo, \verb|\color{blue!30}| + é 30\% de azul. %: \colorbox{blue!30}{\hspace*{1cm}} + +No caso de \verb|\color{red!30!yellow}| + é 30\% de vermelho e restante (70\%) de amarelo. + % : \colorbox{red!30!yellow}{\hspace*{1cm}} + +Em \verb|\color{blue!20!black!30!green}| + é 20\% de azul, 50\% de preto do restante (do 80\% que é 40\%) e restante (40\%) de verde. %: \colorbox{blue!20!black!50!green}{\hspace*{1cm}} + +Para definir nova cor a partir do existente, use o comando +\verb|\colorlet|\index{colorlet@\verb+\colorlet+}. + +Por exemplo, % Ex.: \colorlet{mygreen}{green!80!yellow} + \verb|\colorlet{mygreen}{green!80!yellow}| define \texttt{mygreen} como sendo a mistura de 80\% de verde e 10\% de amalero. %, produzindo \colorbox{mygreen}{\hspace*{1cm}} +Veja o Exemplo~\ref{ex15:xcolor}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex11-07.tex},label=ex:11-07] +\begin{ltxlisting}[caption={ex15-xcolor.tex},label=ex15:xcolor] +\colorlet{mygreen}{green!80!yellow} % defindo cor a partir do existente + +\colorbox{blue!30}{\hspace*{1cm}} + +\colorbox{red!30!yellow}{\hspace*{1cm}} + +\colorbox{blue!20!black!50!green}{\hspace*{1cm}} + +\colorbox{mygreen}{\hspace*{1cm}} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +A seguir, cores básicos do pacote \texttt{xcolor}. + + +\begin{table}[htbp] +\caption{cores aceitos em todos drivers no pacote xcolor} + \ \\ + \begin{tabular}{|c|c|c|c|c|c|c|c|} + \hline + black & \colorbox{black}{\hspace*{1cm}} + & blue & \colorbox{blue}{\hspace*{1cm}} + & brown & \colorbox{brown}{\hspace*{1cm}} + & cyan & \colorbox{cyan}{\hspace*{1cm}} \\ \hline + darkgray & \colorbox{darkgray}{\hspace*{1cm}} + & gray & \colorbox{gray}{\hspace*{1cm}} + & green & \colorbox{green}{\hspace*{1cm}} + & lightgray & \colorbox{lightgray}{\hspace*{1cm}} \\ \hline + lime & \colorbox{lime}{\hspace*{1cm}} + & magenta & \colorbox{magenta}{\hspace*{1cm}} + & olive & \colorbox{olive}{\hspace*{1cm}} + & orange & \colorbox{orange}{\hspace*{1cm}} \\ \hline + pink & \colorbox{pink}{\hspace*{1cm}} + & purple & \colorbox{purple}{\hspace*{1cm}} + & red & \colorbox{red}{\hspace*{1cm}} + & teal & \colorbox{teal}{\hspace*{1cm}} \\ \hline + violet & \colorbox{violet}{\hspace*{1cm}} + & white & \colorbox{white}{\hspace*{1cm}} + & yellow & \colorbox{yellow}{\hspace*{1cm}} \\ \hline + \end{tabular} +\end{table} + +Dependendo da especificação do \texttt{driver}, terão muito mais cores, mas é mais prático trabalhar com cores básicos e suas misturas do que lidar com grande quantidade de nomes para cores. + +\section{Criando ilustrações gráficas} + +Para criar ilustrações gráficas, um dos mais indicados é o pacote \texttt{tikz}\index{tikz}\cite{book:tikz:tantau}. + +O pacote \texttt{tikz} possui muitas extensões que podem ser carregados pelo comando \verb+\usetikzlibrary+\index{usetikzlibrary@\verb+\usetikzlibrary+}. + +Nos exemplos a seguir, será assumido que tem o código do Exemplo~\ref{ex15:tikz:preamble} no \texttt{preamble}. + +\begin{singlespacing} +%\begin{lstlisting}[caption={ex12-02.tex}, label=ex:12-02] +\begin{lstlisting}[caption={ex15-tikz-preamble.tex}, label=ex15:tikz:preamble] +\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 +\end{lstlisting} +\end{singlespacing} + +Os comandos gráficos sempre termina com ponto e vírgula. +Ao compilar o código sem ter terminado com ponto e virgula no trecho de \texttt{tikz}, pode travar o \LaTeX{}. +No caso de estar usando o \LyX{} que não salva +antes de compilar, é importante que salve manualmente antes de compilar. +Note que o ``instant preview inset'' do \LyX{} não trava. +Veja o Exemplo~\ref{ex15:tikz:basico} para começar. +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex12-02.tex, parte b}, label=ex:12-02:b] +\begin{ltxlisting}[caption={ex15-tikz:basico.tex}, label=ex15:tikz:basico] +Poderá desenhar no modo \texttt{inline} como em \tikz \draw[fill] circle (2pt); +ou \tikz{\draw (0,0) -- (1.5,0);} e também como figura independente + +\begin{tikzpicture} +\draw[rounded corners=8pt] (0,0) -- (0,2) -- (2,2) -- (2,0) -- cycle; +\end{tikzpicture} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +O comando \verb+\draw+\index{draw@\verb+\draw+} desenha o elemento. +Como desenhar pode ser configurado com o parâmetro opcional. +``\verb+--+'' indica que vai ligar os pontos a esquerda com da direita com uma linha. +Cores podem ser passado no parâmetro opcional do \verb+\draw+. +Veja o Exemplo~\ref{ex15:tikz:draw}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex12-02.tex, parte c}, label=ex:12-02:c] +\begin{ltxlisting}[caption={ex15-tikz-draw.tex}, label=ex15:tikz:draw] +\begin{center} +\begin{tikzpicture} +\draw (-1,-0.5) -- (1,0.5); % segmentos +\draw (0,1) -- (1,1) -- (1,2) -- (0,2); % Linhas poligonais +\draw (2,0) -- (3,0) -- (3,1) -- (2,1) -- cycle; % Linhas poligonais fechadas +\draw[rounded corners=8pt] (-1,-1) -- (1,-1) -- (1,-2) -- (-1,-2); % Quinas arredondadas +\draw[red] (2,-1) |- (3,-2);% Conectando com linha vertical-horizontal +\draw[blue] (2,-1) -| (3,-2); % Conectando com linha horizontal-vertical +\end{tikzpicture} +\end{center} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +Quando tem mais de um parâmetro opcional, coloque separado pela vírgula. +Veja Exemplo~\ref{ex15:tikz:parametro}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex12-02.tex, parte d}, label=ex:12-02:d] +\begin{ltxlisting}[caption={ex15-tikz-parametro.tex}, label=ex15:tikz:parametro] +\begin{center} +\begin{tikzpicture} +% Epessuras: very thin, thin, thick, very thick +\draw[thick] (0,0) -- (1,1); +% Estilo: dashed, dotted +\draw[dotted] (0,0) -- (1,-1); +% Setas ->, <-, <->, etc +\draw[->] (0,0) -- (1,0); +% Combinadas +\draw[color=blue,thick,->] (0,0) -- (-1,0); +\end{tikzpicture} +\end{center} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +Podemos definir e usar coordenadas, assim como efetuar alguns cálculos com coordenadas. +Veja o Exemplo~\ref{ex15:tikz:coordenadas}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex12-02.tex, parte e}, label=ex:12-02:e] +\begin{ltxlisting}[caption={ex15-tikz-coordenadas.tex}, label=ex15:tikz:coordenadas] +\begin{center} +\begin{tikzpicture} + \coordinate (A) at (0,0); + \coordinate (B) at (1,0); + \coordinate (C) at (1,1); + + \draw (A) -- (B) -- (C) -- cycle; + + % interpolacao linear das coordenadas + % $(A)!t!(C)$ sera interpretado como sendo (1-t)*(A)+t*(C) + \draw[dotted] (A) -- ($(B)!0.5!(C)$); + + % Interpolação linear com rotação + % rotacionado por angulo de 15 em torno de (B) + \coordinate (D) at ($(B)!1!15:(C)$); + + \draw[dashed] (A) -- (D); + + % projeção ortogonal + % $(A)!(B)!(C)$ sera pe do perpendicular abaixado de (B) + % para a reta determinado pelos pontos (A) e (C) + \coordinate (H) at ($(A)!(B)!(C)$); + + \draw (A) -- (B) -- (C) -- cycle; + + \draw[blue] (B) -- (H); + + % Coordenada com rotulos (ja desenha o rotulo quando define) + \coordinate[label=left:$X$] (X) at (3,0); + \coordinate[label=right:$Y$] (Y) at (4,1); + \draw (X) -- (Y); + + % Coordenada polar. + % As coordenada polar é dado por (angulo:raio). + % O ângulo é em graus. + \coordinate (u) at (45:1); % (angulo:raio) + \coordinate (v) at (90:2); + + % combinação linear das coordenadas + % Note que devem ficar delimitados pelo $ + \draw[->] (A) -- ($1.5*(u)+0.5*(v)$); +\end{tikzpicture} +\end{center} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +Também podemos obter intersecções. +Para pintar dentro, podemos usar o comando \verb+\fill+\index{fill@\verb+\fill+} (ou \verb+\draw+ com opção) +Veja o Exemplo~\ref{ex15:tikz:intersection}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex12-02.tex, parte f}, label=ex:12-02:f] +\begin{ltxlisting}[caption={ex15-tikz-intersection.tex}, label=ex15:tikz:intersection] +\begin{center} +\begin{tikzpicture} + % desenhando e definindo coordenadas + \draw (0,0) coordinate (A) -- (2,3) coordinate (B) + (0,2) coordinate (C) -- (3,1) coordinate (D); + \fill[red] (intersection of A--B and C--D) circle (2pt); + + % Outra forma de obter intersecção. + \draw (4,0) coordinate (E) -- (6,3) coordinate (F) + (4,2) coordinate (G) -- (7,1) coordinate (H); + \fill[blue] (intersection cs: + first line={(E) -- (F)}, + second line={(G) -- (H)}) circle (2pt); +\end{tikzpicture} +\end{center} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +Círculos, elipses e arcos também podem ser desenhados. +Veja o Exemplo~\ref{ex15:tikz:circle}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex12-02.tex, parte g}, label=ex:12-02:g] +\begin{ltxlisting}[caption={ex15-tikz-circle.tex}, label=ex15:tikz:circle] +\begin{center} +\begin{tikzpicture} + \draw[red] (-1.5,0) circle (0.5); % circlo + + \coordinate [label=left:$A$] (A) at (0,0); + \coordinate [label=right:$B$] (B) at (1.25,0.25); + \draw (A) -- (B); + % Circulo passando por (B), com centro em (A) + \node [draw,circle through=(B),label=above:$c$] at (A) {}; + + \coordinate (X) at (3,0); + \def\localRadius{2} + \def\localAngle{45} + + % fazendo circulo na ponta inicial e rotulando como $X$ + \draw (X) circle (2pt) node[anchor=south west] {$X$}; + + % faz arco e os circulos na ponta final e rotula como $Y$ + \draw (X) arc (0:\localAngle:\localRadius) circle (2pt) node[anchor=south] {$Y$}; + +% Elipse: Atento pelo uso de "and" quando indica os raios da elipse + \draw (5,0) ellipse (0.5 and 1.0); +\end{tikzpicture} +\end{center} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +Também podemos desenhar o gráfico das funções +Veja Exemplo~\ref{ex15:tikz:grafico}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex12-02.tex, parte h}, label=ex:12-02:h] +\begin{ltxlisting}[caption={ex15-tikz-grafico.tex}, label=ex15:tikz:grafico] +\begin{center} +\begin{tikzpicture}[domain=-3.2:3.2] +%\draw[dotted] (-3.2,-1.2) grid (3.2,1.2); +\draw[->] (-3.5,0) -- (6.5,0) node[right] {$x$}; +\draw[->] (0,-5.2) -- (0,2.2) node[above] {$y$}; + +% O angulo padrao sera em graus. Para usar em radianos, acrescente " r" no parametro da funcao trigonometrica +\draw[smooth,color=blue,domain=-pi-0.1:pi+0.1] plot (\x,{sin(\x r)}) node[above] {$f(x) =\mathrm{sen}(x)$}; + +% Curvas em coordenada polar. O angulo padrao sera em graus. A funcao deg() converte radiano para grau (mesmo que sufixo r) +\draw[smooth,color=red,domain=0:2*pi] plot ({deg(\x)}:\x) node[above] {$\rho(\theta) =\theta$}; + +% curvas parametricas. +% podera especificar o nome da variavel em vez de usar o padrao \x +\draw[smooth,color=green,domain=-1.8:1.8,variable=\t] plot ({cosh(\t)},{sinh(\t)}) node[above]{$\text{ramo de }x^2-y^2=1$}; +\end{tikzpicture} +\end{center} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +Também podemos dessenhar gráficos da função tabelada. +No Exemplo~\ref{ex15:tikz:funcao:tabelada}, está usando a função tabelada no arquivo de texto externo. +Ele também faz o uso do laço \verb+\foreach+\index{foreach@\verb+\foreach+} para marcar valores sobre eixos. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex12-02.tex, parte i}, label=ex:12-02:i] +\begin{ltxlisting}[caption={ex15-tikz-funcao-tabelada.tex}, label=ex15:tikz:funcao:tabelada] +\begin{center} +\begin{tikzpicture} + % eixos + \draw[->] (-2.5,0) -- (2.5,0) node[right] {$x$}; + \draw[->] (0,-0.5) -- (0,4.5) node[above] {$y$}; + + % grid + \draw[dotted] (-1,0) grid (1,1); + \draw[dotted] (-2,0) -- (-2,4) -- (2,4) -- (2,0); + + % efetuando laco nos parametros para marcar escala + \foreach \x in {-2,-1,1,2} % sobre eixo x + \node at (\x, 0) [below] {\x}; + \foreach \y in {1,4} % sobre eixo y + \node at (0,\y) [anchor=south west] {\y}; + + % grafico tabelado no arquivo externo. + % Note que tikz não reconhece notação científica + % no arquivo de entrada. + \draw[color=blue] plot[smooth] file {latex-via-exemplos-tabela.txt} node [right] {$y=x^2$}; +\end{tikzpicture} +\end{center} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +Também podemos pintar, preencher com padrão e sombrear. +Veja Exemplo~\ref{ex15:tikz:pintar}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex12-02.tex, parte j}, label=ex:12-02:j] +\begin{ltxlisting}[caption={ex15-tikz-pintar.tex}, label=ex15:tikz:pintar] +\begin{center} +\begin{tikzpicture}[scale=1.5] % podemos mudar a escala +% fill (pinta) e filldraw (pinta e desenha o contorno) podem ser usados para pintar. Outra forma é passar o parámetro fill para draw. + +\filldraw[fill=red!25,draw=blue] (5,0) rectangle (6,1); + +% pattern preenche com padrao de preenchimento. +% Parametro draw eh para desenhar o contorno +\pattern[pattern=north east lines, draw=blue] (3,0) circle (1); + +% sombra eh feito pelo shade e sombra com contorno com shadedraw (igual a shade com parametro draw) +% sombra pode ser degrade e aceita o sintaxe do xcolor (cor!percentual) +% Na funcao, \x^2 nao funciona. Deve ser (\x)^2. +\shade[domain=-1:1,top color=blue!25,bottom color=red!25,draw=red] plot (\x,{(\x)^2}); + +% fazendo tudo com draw +% Iterando num intervalo +\foreach \x in {0,...,9} \draw[red,pattern=north east lines,pattern color=red!25] (\x,-1.5) circle (0.3); +% Iternado sobre listas +\foreach \x in {0,1,3,4} \draw[fill=blue!25,draw=blue] (\x,-2.5) circle (0.3); +% contador com iteracao em letras +\foreach \x [count = \xi] in {a,...,c,A,B,...,D} +{ + \draw[shade, left color=blue!25, right color=red!25,draw=blue] (\xi,-3) -- (\xi+0.5,-3) -- (\xi,-4) -- cycle; + \draw (\xi+0.25,-4) node{\x}; +} +\end{tikzpicture} +\end{center} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +Na matriz do \texttt{tikz}, podemos desenhar sobre ele. +Veja Exemplo~\ref{ex15:tikz:matriz}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex12-02.tex, parte k}, label=ex:12-02:k] +\begin{ltxlisting}[caption={ex15-tikz-matriz.tex}, label=ex15:tikz:matriz] +\begin{center} +\begin{tikzpicture} +\matrix (A) [matrix of math nodes,left delimiter=[,right delimiter={]} ] +{ 1 & 2 & -1 & 5 \\ +0 & |[draw=red,circle]|3 & 2 & 1 \\ +0 & -2 & \phantom{-}2 & -4 \\ +}; +% separando a matriz da parte aumentada +\draw[thick,dashed,blue] (A-1-3.north east) -- (A-3-3.south east); +% limitando a parte escalonada +\draw[thick,dotted,blue] (A-2-1.north west) -- (A-2-1.north east) -- (A-3-1.south east); +% onde vai colocar a seta para piv\^o +\coordinate (P) at ($(A-2-1)!-2!(A-2-2)$); +\coordinate (Q) at ($(A-2-1)!-1.3!(A-2-2)$); +% colocando a seta na linha de piv\^o +\draw[->] (P) -- (Q); +\node at ($(P)!-1.2!(Q)$) {piv\^o}; +\end{tikzpicture} +\end{center} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +O diagrama comutativo é uma espécie de tabela com comando \verb+\ar+\index{ar@\verb+\ar+} para desenhar setas. +\verb+\ar+ é seta e o primeiro parâmetro opcional dele é para que lado vai a seta (pode ser combinado). ``r'' (direita), ``l'' (esquerda), ``d'' (para baixo), ``u'' (para cima). Também pode usar o ``\texttt{to=}'' para indicar a célula diretamente. +O rótulo, caso exista, deve ser delimitado entre aspas. + +No Exemplo~\ref{ex15:tikz:diagrama}, precisará também do pacote \texttt{amssymb} para o comando \verb+\circlearrowleft+\index{circlearrowleft@\verb+\circlearrowleft+}, mesmo com \texttt{unicode-math} no \XeLaTeX/Lua\LaTeX{} (Se estiver usando \XeLaTeX/Lua\LaTeX, carregue antes do \texttt{unicode-math}). +No \texttt{unicode-math}, este símbolo é \verb+\acwgapcirclearrow+\index{acwgapcirclearrow@\verb+\acwgapcirclearrow+}, mas na versão 2016, ele não aparece (março de 2018, também não). Provavelmente a fonte padrão ``Latin Modern Math'' não tem este símbolo. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex12-02.tex, parte l}, label=ex:12-02:l] +\begin{ltxlisting}[caption={ex15-tikz-diagrama.tex}, label=ex15:tikz:diagrama] +\begin{center} +\begin{tikzcd} +A \ar[r, "\phi"] \ar[d, red] \ar[to=2-2, phantom, "\circlearrowleft" description] & B \ar[d, "\psi" red] \\ +C \ar[r, red, "\varphi" red, "\eta" {swap, blue}] & D +\end{tikzcd} +\end{center} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +As bibliotecas para \texttt{tikz} é extensa, cobrindo vários tipos de desenhos e diagramas. +Se precisar de algo desse tipo, consulte o material para ver se já tem a biblioteca pronta. + +Para desenhar gráficos de funções ou de dados em 2D ou em 3D, existe o pacote especializado \texttt{pgfplots}\index{pgfplots} que não vamos discutir aqui. + +%xcolor, OK +%tikz, OK +%algumas bibliotecas do tikz, OK +%pgfplot? Nao veremos + +\clearpage\thispagestyle{empty}\cleardoublepage +\chapter{Produzindo \texttt{Poster} e \texttt{Slides}} + +\section{\texttt{Poster}} + +Para quem quer produzir o \texttt{poster} diretamente no \LaTeX, a maneira mais prática é diagramar com um quarto (metade de largura e altura) do tamanho desejuado, usando letra 12pt. +Após finalizar, amplie o poster para produzir no tamanho real. +Com tal procedimento, os caracteres serão ampliados para equivalentes a 24pt. +Use a fonte \texttt{Sans Serif} para poster. +Caso de precisar usar a fonte romana, aumente o tamanho de caracteres em torno de 20\%. + +Por exemplo, para poster final de 100x120cm, dimensione para 50x60cm, para dimensão final de A0, dimensione para A2, etc. + +Para criar ``layout'' de divisão em colunas e similares, use o ambiente \texttt{multicols} (do pacote \texttt{multicol}) e \texttt{minipage}. +O enfeite das ``caixas de texto'' podem ser feitos usando diversas caixas, tais como \verb+\fbox+. + +No Exemplo~\ref{ex16:poster}, foi usado o pacote \texttt{lipsum} para preencher o espaço com texto pare ver como fica a aparência do poster. + +% \LTXinputExample{latex-via-exemplos-poster} +\begin{singlespacing} +% \lstinputlisting[caption={ex11-12.tex},label=ex:11-12]{latex-via-exemplos-poster} +\lstinputlisting[caption={ex16-poster.tex},label=ex16:poster]{latex-via-exemplos-poster} +\end{singlespacing} +% +\begin{framed} +\center +\includegraphics[width=0.7\linewidth]{latex-via-exemplos-poster} +\end{framed} + +Se quer usar \LaTeX{} para produzir material publicitário como posters, jormais, revistas e livros ilustrados com a qualidade profissional, o pacote \texttt{flowfram}\index{flowfram} é o pacote adequado. + Além da sua qualidade final, a facilidade e a versatilidade costumam ser superior aos pacotes similares. + + Para criar \texttt{layout} complexos que inclui caixas não retangulares, poderá usar o \texttt{flowframtk}\index{flowframtk} disponível no site +\url{http://www.dickimaw-books.com/latex/admin/html/flowfram.shtml} + +Para quem estiver acostumado a usar o pacote beamer (pacote para produzir slides de apresentação), o pacote \texttt{beamerposter}\index{beamerposter} é interessante para produzir poster com cara de apresentação em beamer. + +Em vez de usar o \LaTeX, poderá usar aplicativos gráficos para criar poster ou similares. +Para posters científicos, ideal que o aplicativo tenha suporte ao \LaTeX{} como no caso do editor gráfico \texttt{inkscape}\index{inkscape} e editor para publicações \texttt{scribus}\index{scribus}, ambos livres e multi plataforma. + +Para aumentar o poster diagramado com fontes 12pt, como do Exemplo~\ref{ex16:poster}, podemos usar o aplicativo livre e multi plataforma \texttt{jPDFTweak}\index{jPDFTweak} que é um aplicativo para pós produção de documentos PDF, disponível em \url{http://jpdftweak.sourceforge.net/}. + +Entre várias funções importantes deste aplicativo, vamos usar o redimensionamento para ampliar o poster. + +No \texttt{jPDFTweak}: + +\begin{enumerate} +\item indique o arquivo de entrada em ``input''. +\item indique o arquivo de saída em ``output''. +\item em [page size], cheque o ``[v] scale pages'' e selecione o tamanho da página como ``Page size'' = ``escala dobro do original''. +\item clique no [run] +\end{enumerate} + +\textbf{Observação:} Para dobrar a escala no papel ISO, +escolha dois números para baixo. +Por exemplo, se o original estiver em A2 landscape, escolha A0 landscape. +Caso a medida do papel estiver em cm, dobre o valor e em seguida, multiplique por 72/2.54 para converter em postscript point que jPDFTweak usa na largura e na altura do papel. +Por exemplo, se o original estiver com 45cmx60cm, +vamos colocar 90x72/2.54=2551.18 e 120x72/2.54=3401.57 +para largura e altura respectivamente. + +\section{\texttt{Slides}} + +Para criar apresentações, costuma usar a classe \texttt{beamer}\index{beamer}. + +Algumas opções da classe \texttt{beamer} são tamanho da fonte (normalmente usa 12pt, embora suporta o tamanho maior), +\texttt{handout} (para impressão. Ignora o \texttt{overlay}), \texttt{notes} (incluir notas), \texttt{notesonly} (somente notas). + +A classe \texttt{beamer} usa área reduzida com letra normal e será ampliado quando projetar na tela. +Assim, costuma usar a fonte de tamanho 12pt. + +Nesta classe, cada tela de slide será delimitado pelo ambiente \texttt{frame}\index{frame}. +Tem a versão comando do \texttt{frame}\index{frame@\verb+\frame+} também, para ser usado quando tem poucos comandos contidos nele, como no caso de título e sumário. + +O tema (modelo) de slides é escolhido pelo comando +\verb+\usetheme+\index{usetheme@\verb+\usetheme+}. +Tema que vem como padrão são: +\texttt{AnnArbor, Antibes, Bergen, Berkeley, Berlin, Copenhagen, +Darmstadt, Dresden, Frankfurt, Goettingen, Hannover, +Ilmenau, JuanLesPins, Luebeck, Madrid, Malmoe, +Marburg, Montpellier, PaloAlto, Pittsburgh, Rochester, +Singapore, Szeged, Warsaw, boxes, default +e CambridgeUS}. + +Para cada tema, ainda podemos escolher o tema de cores, ou combinação de cores a serem usados, escolhidos pelo comando \verb+\usecolortheme+\index{usecolortheme@\verb+\usecolortheme+}. +Tema de cores padrão que vem são: +\texttt{default, albatross, beaver, beetle, crane, dolphin, dove, fly, lily, orchid, rose, seagull, seahorse, whale e wolverine}. + +Para ver como ficará a combinação do tema e tema de cores, poderá consultar o +\url{https://hartwork.org/beamer-theme-matrix/}. + +É pouco usado, mas ainda podemos alterar as combinações das fontes com o comando \verb+\usefonttheme+\index{usefonttheme@\verb+\usefonttheme+}. +Tema de fontes padrão são: +\texttt{default, serif, professionalfonts, structurebold, + structureitalicserif, structuresmallcapsserif +}. +Em geral, usa-se o comando \verb+\setbeamerfont+\index{setbeamerfont@\verb+\setbeamerfont+} para configurar fontes de seus elementos do que escolher um tema para fontes (combinação de fontes). + +A classe \texttt{beamer} carrega o pacote \texttt{hyperref} por padrão. +Então podemos configurar alguns aspectos sobre informações do \texttt{PDF} com o \verb+\hypersetup+, mas isto não é obrigatório. + +Para criar slide de títulos ou quando estiver usando tema que usa títulos, autores, etc, precisará informar o titulo, autor, instituição e data, respectivamente pelos comandos \verb+\title+, \verb+\author+, \verb+\institute+ e \verb+\date+. +Quando tiver mais de um autor, separe com \verb+\and+. +O comando \verb+\inst+ dentro do \verb+\author+ e \verb+\institute+ faz a ligação de autor com o instituto correspondente. + +Os elementos do slide pode ser alterado pelo comando \verb+\setbeamertemplate+\index{setbeamertemplate@\verb+\setbeamertemplate+}. +Para criar degrade no fundo do slide, costuma usar o recurso do pacote \texttt{tikz}. +Note que \texttt{xcolor} é carregado pelo \texttt{beamer} por padrão. +O comando \verb+\setbeamertemplate+ também pode ser usado para desativar os botões de navegação. + +Os comandos \verb+\maketitle+ e \verb+\tableofcontents+ funcionam normalmente. +Note que o sumário é construído a partir de \texttt{section} e não pelo \texttt{frame}. +Assim, para ter o sumário, deverá colocar \verb+\section+ entre os \texttt{frame}'s no local desejado. + +Cada \texttt{slide} (tela) é criado pelo ambiente \texttt{frame}\index{frame} ou comando \verb+\frame+\index{frame@\verb+\frame+}. +O ambiente \texttt{frame} aceita o comando \verb+\frametitle+\index{frametitle@\verb+\frametitle+} para colocar títulos. + +O comando \verb+\note+\index{note@\verb+\note+} serve para inserir notas adicionais que não são colocados no \texttt{slide}, mas pode ser gerado e impresso com a opção \texttt{notes} ou \texttt{notesonly} na opção da classe, para auxiliar na apresentação. + +%Note que existe a versão ambiente de \texttt{note}\index{note} para anotações maiores, mas ele só funciona fora do \texttt{frame} (a versão comando funciona tanto dentro como fora do \texttt{frame}). +% Não está funcionando na versão 2016. Testar na versão mais recente. + +As notas adicionadas fora do \texttt{frame} será assumido que do \texttt{frame} anterior. + +O Exemplo~\ref{ex16:slides} ilustra um slide e uma das telas do slide gerado pelo código listado. +Nele, foi usado o pacote \texttt{lipsum} para preencher alguns slides. + +\begin{singlespacing} +%\lstinputlisting[caption={ex12-01.tex},label=ex:12-01]{latex-via-exemplos-slides} +\lstinputlisting[caption={ex16-slides.tex},label=ex16:slides]{latex-via-exemplos-slides} +\end{singlespacing} +% +\begin{framed} +\center +\includegraphics[page=7, width=0.7\linewidth]{latex-via-exemplos-slides} +\end{framed} + +Note que, nos itens de listas aceitam o parâmetro opcional de ``\texttt{overlay}''\index{overlay} delimitado por ``<'' e ``>''. +Com o uso de \texttt{overlay}, o \texttt{slide} será apresentado por etapas. Em cada etapa do \texttt{overlay}, será mostrado uma parte do \texttt{slide}. +O mais usado é ir mostrando cada vez mais elemento na medida que etapa avança (andar no \texttt{slide}. + +A especificação do \texttt{overlay} são: +\begin{description} +\item[] indica que será mostrado somente na etapa n. +\item[] é mostrado somente nas etapas m até n. +\item[] é mostrado nas etapas n em diate. +\item[<-n>] é mostrado até as etapas n. +\end{description} + +Os comandos de formatação de textos do tipo \verb+\textsf{}+, \verb+\textbf{}+, \verb+\emph+, etc, também aceitam a opção de \texttt{overlay}. +Também foi acrescido o comando \verb+\alert+ neste conjunto para deixar o texto em vermelho. + +Para criar \texttt{overlay} nas partes desejadas que não é necessariamente itens da lista ou formatação de texto, +existe o comando \verb+\only+\index{only@\verb+\only+} que mostra o conteúdo somente no \texttt{overlay} indicado. + +Também tem o ambiente chamado de \texttt{block}\index{block} que produz ``bloco'' com ou sem títulos e aceita ``overlay''. + +No \texttt{frame}, alguns parâmetros opcionais podem ser usados. +Alguns dos mais importantes são +\begin{description} +\item[fragile] Necessário quando uda o ambiente \texttt{verbatim} ou similar. +\item[allowframebreaks] Ativa a quebra automática de \texttt{frame}'s quando o conteúrdo não cabe no \texttt{frame} atual. +\item[plain] Limpa as configurações (cabeçalhos e rodapés) do \texttt{frame} para caber mais conteúdos. Útil para figuras e tabelas grandes. +\item[shrink] Reduz o tamanho do conteúdo para caber no \texttt{frame} atual, se necessário. Isto pode reduzir o tamanho da letra e por isso, deve ser usado com muita cautela. Use em conjunto com \texttt{plain} para ampliar a área de \texttt{slide}. +\end{description} + +Note que \BibTeX{} não funciona no \texttt{beamer}. +Assim, deverá criar manualmente a referência bibliográfica com o ambiente \texttt{thebibliography}. + +\clearpage\thispagestyle{empty}\cleardoublepage +\chapter{Usando \XeLaTeX{} e Lua\LaTeX{}} +Aqui será tratado sobre \XeLaTeX{} e Lua\LaTeX{}, considerado as próximas gerações de \LaTeX. + +\section{Lua\LaTeX{} e \XeLaTeX} + +O Lua\LaTeX{}\index{LualaTeX@{Lua(La)\TeX}} foi designado para ser o sucessor do PDF\LaTeX{} e por isso, deve ser o \LaTeX{} padrão no futuro, mas pode ser um pouco mais lento do que o \XeLaTeX. +Até o momento (2018), o \XeLaTeX{}\index{XelaTeX@{Xe(La)\TeX}} é considerado mais estável do que Lua\LaTeX. +Lua(La)TeX permite estender a funcionalidade do (La)TeX usando a linguagem script \texttt{Lua} (\texttt{Lua} foi desenvolvido no PUB-Rio, aqui no Brasil). + +Já existem pacotes especiais para Lua\LaTeX como o módulo de diagramação automática de grafos no \texttt{pgf/tikz}. +O suporte ao recurso de microtipografia (efetuar pequenos ajustes no tamanho das letras e espaçamento para que texto acomode melhor) pelo pacote \texttt{microtype} também funciona melhor com Lua\LaTeX{} do que em \XeLaTeX. + +A maioria dos documentos de \LaTeX{} devem funcionar sem modificações no \XeLaTeX/Lua\LaTeX, mas para usar as fontes do sistema, devem usar a forma própria de selecionar fontes. +No caso em que a fonte selecionada contiver símbolos matemáticos suficientes, costuma usar o \texttt{unicode-math}\index{unicode-math} em vez dos \texttt{amssymb} e \texttt{amsmath}. +Caso precisar de alguns símbolos de \texttt{amssymb} ou comandos de \texttt{amsmath}, carregue antes do \texttt{unicode-math}. + +%PDFLaTeX e XeLaTeX/LuaLaTeX usa esquema diferente para seleção de fontes e podem usar esquema diferente também para a seleção de idiomas. + +A forma de ajustar a codificação no \LaTeX, \XeLaTeX{} e Lua\LaTeX{} diferem, mas como \XeLaTeX{} e Lua\LaTeX{} usam \texttt{uft8} como padrão, não vamos preocupar com isso. +Só no \LaTeX{} que precisará especificar, usando o \texttt{inputenc}. + +Embora \texttt{babel} funcione no \XeLaTeX/Lua\LaTeX{} também, no Exemplo~\ref{ex17:lualatex} foi usado o \texttt{polyglossia}\index{polyglossia} feito especialmente para \XeLaTeX/Lua\LaTeX. +Ainda (2018) é cedo para saber se \texttt{babel} ou \texttt{polyglossia} vai ficar como pacote recomendável para \XeLaTeX/Lua\LaTeX. + +Embora maioria dos pacotes de fontes do \LaTeX{} funcione no \XeLaTeX/Lua\LaTeX, no Exemplo~\ref{ex17:lualatex}, foi usado o método próprio deles que permite selecionar, inclusive as fontes do sistema. + +Se a fonte usada contiver símbolos matemáticos, use \texttt{unicode-math} em vez do \texttt{amssymb}/\texttt{amsmath}. +Se precisar dos símbolos ou comandos de \texttt{amssymb} e \texttt{amsmath}, carregue eles antes do \texttt{unicode-math}. +% O simbolo \circlearrowleft do amssymb nao esta no unicode-math ainda (versao 2016). +% O coamdo \DeclareMathOperator do amsmath nao esta no unicode-math. + +Note que os pacotes e comandos do \LaTeX{} padrão, exceto o \texttt{inputenc} costumam funcionar no \XeLaTeX{} e Lua\LaTeX, mas não o contrário. +Assim, para que o documento possa ser compilado tanto em PDF\LaTeX{} como em \XeLaTeX/Lua\LaTeX, poderá usar o pacote \texttt{iftex}\index{iftex} para detectar a engenharia do \TeX{} em uso. + +%\setcounter{lstorichapter}{\value{chapter}} +%\setcounter{lstorisection}{\value{section}} +% \let\orilabel\label +\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex06-08.tex, parte b},label=ex:06-08:b,preset={\setcounter{chapter}{1},\setcounter{section}{0},\let\addcontentsline\emptyaddcontentsline}] +%\begin{lstlisting}[caption={ex12-04.tex},label=ex:12-04] +\begin{lstlisting}[caption={ex17-lualatex.tex},label=ex17:lualatex] +\documentclass[a4paper,12pt]{article} + +\usepackage{iftex} % Para detectar engenharia de TeX + +\ifPDFTeX % Se (PDF)LaTeX + \usepackage[T1]{fontenc} % codificação da fonte em 8-bits + \usepackage[utf8]{inputenc} % acentuação direta + \usepackage[english,brazil]{babel} % em portugues brasileiro (ingles como secundario) + + \usepackage{lmodern} % latin Modern (Computer modern com extensao latin) + + % \usepackage{noto} % fonte Noto patrocinado pelo Goggle + % \usepackage[italic]{mathastext} % A fonte Noto nao possui fontes matematicos ainda + + \usepackage{textcomp} + \usepackage{amssymb,amsmath} + +\else % Se XeLaTeX/LuaLaTeX + \usepackage{polyglossia} + \setdefaultlanguage{brazil} + \setotherlanguage{english} % secundario + + % Estas fontes são padões e não precisavam especificar. Foram colocados somente para ilustrar + \setmainfont{Latin Modern Roman} + \setsansfont{Latin Modern Sans} + \setmonofont{Latin Modern Mono} + % Se precisar do amssymb,amsmath, deverao carregar antes do unicode-math + % \usepackage{amssymb,amsmath} + + % \usepackage{xunicode} % textcomp equiv. nao funciona no lualatex recente (marco de 2018) + \usepackage{unicode-math} % amsmath, amssymb equiv. + \ifLuaTeX % Somente LuaLaTeX + \usepackage{lualatex-math} % alguns fix do amsmath/mathtools equiv. para LuaLaTeX. + \fi + \setmathfont{Latin Modern Math} % Padrao e não precisava. Foi colocado somente para ilustracao + + % Fonte Noto nao tem fontes matematicos ainda + %\setmainfont[Ligatures=TeX]{NotoSerif} + %\setsansfont{NotoSans} + %\setmonofont{NotoMono} + % Asana math (Palationo like) + % \setmainfont{Asana-Math} + % STIX (Times like font) + %\setmainfont[Ligatures=TeX]{STIX} + %\setmathfont{STIX Math} + %% XITS (Times like font) + %\setmainfont[Ligatures=TeX]{XITS} + %\setmathfont{XITS Math} +\fi + +% Mais alguns pacotes +\usepackage[margin=2.5cm]{geometry} +\usepackage{hyperref} +\hypersetup{ + bookmarks=true +} +\usepackage[stretch=10]{microtype} % microtipografia: funciona no PDFLaTeX e LuaLaTeX (parcialmente em XeLaTeX) + +\begin{document} +O Lua\LaTeX{} foi designado para ser o sucessor do PDF\LaTeX{} e por isso, deve ser o \LaTeX{} padrão no futuro. Por outrolado, XeLaTeX e mais rápido e estável (2018). + +\ldots + +Se $F'(x)=f(x)$ for contínua, +\[ +\int_a^bf(x)dx = F(b) - F(a) +\] +\end{document} +\end{lstlisting} +\end{singlespacing} +%\let\ref\oriref +%\setcounter{chapter}{\value{lstorichapter}} +%\setcounter{section}{\value{lstorisection}} +%% \addtocounter{chapter}{-1} +%\let\addcontentsline\oriaddcontentsline + +%\begin{singlespacing} +%\begin{framed} +\begin{ltxlistingout} +O Lua\LaTeX{} foi designado para ser o sucessor do PDF\LaTeX{} e por isso, deve ser o \LaTeX{} padrão no futuro. Por outro lado, \XeLaTeX{} e mais rápido e estável (2018). + +\ldots + +Se $F'(x)=f(x)$ for contínua, +\[ +\int_a^bf(x)dx = F(b) - F(a) +\] +\end{ltxlistingout} +%\end{framed} +%\end{singlespacing} + +Existem algumas fontes \texttt{Open Type} com suporte a matemática que podem ser usados no \XeLaTeX/Lua\LaTeX{}. +O site \url{https://www.overleaf.com/help/193-what-otf-slash-ttf-fonts-are-supported-via-fontspec} lista algumas delas. + +\begin{itemize} +\item \texttt{Cambria Math} (Microsoft, somente Windows). +\item \texttt{Latin Modern Math} (Bogusław Jackowski, Janusz M. Nowacki). Padrão do \XeLaTeX/Lua\LaTeX. +\item \texttt{TeX Gyre Pagella Math} (Bogusław Jackowski, Janusz M. Nowacki). +\item \texttt{TeX Gyre Termes Math}. +\item \texttt{Asana Math} (Apostolos Syropolous), Estilo \texttt{Times}. +\item \texttt{Neo Euler} (Khaled Hosny). +\item \texttt{STIX} (STI Pub). +\item \texttt{XITS Math} (Khaled Hosny). +\end{itemize} +% Outros: TeX Gyre Bonum Math, TeX Gyre Schola Math, + +Note que a fonte \verb+\mathcal+ e \verb+\mathbb+ do \texttt{unicode-math} é diferente do \texttt{amssymb}. +O \verb+\mathbb+ é mais próximo do \verb+\mathds+ do \texttt{dsfont} e \verb+\mathcal+ é mais parecido com do pacote \texttt{eucal} do que de \texttt{amssymb}. + +Quem quer a versão do \texttt{amssymb}, poderá colocar +\begin{singlespacing} +\begin{lstlisting} +\let\mathcal\relax % remove the definition by unicode-math +\DeclareMathAlphabet{\mathcal}{OMS}{cmsy}{m}{n} +\let\mathbb\relax % remove the definition by unicode-math +\DeclareMathAlphabet{\mathbb}{U}{msb}{m}{n} +\end{lstlisting} +\end{singlespacing} +no \texttt{preamble}, após carregar o \texttt{unicode-math}. + +\section[Fontes no \XeLaTeX/Lua\LaTeX]{Mais sobre básicos das fontes no \XeLaTeX/Lua\LaTeX} + +No \XeLaTeX/Lua\LaTeX, poderá redigir em qualquer idioma desde que esteja utilizando as fontes que suportam tais idiomas. +Assim, quando redige o documento multi lingue, basta definir qual fontes será usado em qual trecho. +Para facilitar a especificação de fontes em cada trecho de textos, costuma definir família de fontes usando \verb+\newfontfamily+\index{newfontfamily@\verb+\newfontfamily+} do pacote \texttt{fontspec}\index{fontspec}. +Ele define comandos para usar a fonte especificada com as configurações também especificadas, que funcionam como outros comandos de seleção de famílias de fontes pré definidos tais como \verb+\rmfamily+, \verb+\sffamily+, etc. + +Por exemplo, +\begin{singlespacing} +\begin{lstlisting} +\newfontfamily{\notorm}{Noto Serif} +\newcommand{\textnotorm[1]{{\notorm #1}} +\newfontfamily{\notosf}{Noto Sans} +\newcommand{\textnotosf[1]{{\notosf #1}} +\end{lstlisting} +\end{singlespacing} + +Definem comandos \verb+\notorm+ e \verb+\notosf+ para usar fontes \texttt{Noto Serif} e \texttt{Noto Sans}. +O \verb+\newcommand+ foi usado para criar a versão \verb+\textxx+ que são \verb+\textnotorm+ e \verb+\textnotosf+ respectivamente. +Note o uso de chave dupla para que a configuração da fonte não ``vaze'' para fora. + +Para usar fontes não definidos anteriormente, poderá usar o comando \verb+\fontspec+\index{fontspec@\verb+\fontspec+} para selecionar fonte especificada. + +Apesar de poder configurar a especificação da fonte com o parâmetro opcional dos comandos de seleção de fontes e definições de família de fontes, +isto também pode ser efetuado separadamente pelo comando \verb+\defaultfontfeatures+\index{defaultfontfeatures@\verb+\defaultfontfeatures+} para especificar recursos das fontes. +O parâmetro opcional será usado para indicar o nome da fonte que está especificando. +Por exemplo, +\begin{singlespacing} +\begin{lstlisting} +\defaultfontfeatures[Noto Serif]{Ligatures=TeX} +\end{lstlisting} +\end{singlespacing} +Especifica que no \texttt{Noto Serif}, será usado a ligadura no modo \TeX. +Além de indicar nome das fontes, poderá indicar pelo comando de família das fontes como em +\begin{singlespacing} +\begin{lstlisting} +\defaultfontfeatures[\rmfamily,\sffamily]{Ligatures=TeX} +\end{lstlisting} +\end{singlespacing} +especifica que na fonte \texttt{romana} e \texttt{sans serif}, será usado a ligadura padrão do \TeX. + +Para limpar a especificação das fontes, basta usar como +\begin{singlespacing} +\begin{lstlisting} +\defaultfontfeatures[\rmfamily,\sffamily]{} +\end{lstlisting} +\end{singlespacing} +O comando \verb+\defaultfontfeatures+\index{defaultfontfeatures*@\verb+\defaultfontfeatures*+} tem a versão ``+'' que acrescenta a especificação em vez de substituir. +O comando \verb+\addfontfeature+\index{addfontfeature@\verb+\addfontfeature+} pode ser usado para ajustar localmente a especificação. +Coloque entre chaves para especificação adicional seja aplicado somente no trecho. + +Quando lida com várias fontes no \XeLaTeX/Lua\LaTeX, as vezes é importante checar se a fonte existe. +\verb+\IfFontExistsTF+\index{IfFontExistsTF@\verb+\IfFontExistsTF+} do pacote \texttt{fontspec} checa a fonte do primeiro parâmetro existe. +Se existir, executará o segundo parâmetro e se não existir, executa o terceiro parâmetro. +O comando a seguir configura a fonte principal para \texttt{Noto Serif} caso ele existir. +\begin{singlespacing} +\begin{lstlisting} +\IfFontExistsTF{Noto Serif}{\setmainjfont{Noto Serif}}{% + \PackageWarn{\jobname.tex}{Noto Sans not found. Using default fonts} +\end{lstlisting} +\end{singlespacing} +% O comando \IfFontExistisTF nao esta disponivel no fontspec de 2016. + +Ir testando várias fontes com este comando até achar uma disponível na lista é trabalhoso. +Assim, para procurar fontes na lista, costuma usar o pacote \texttt{iffont}\index{iffont}. +Ele implementa o comando \verb+\settofirstfound{\nomefonte}{}+\index{settofirstfound@\verb+\settofirstfound+} onde \texttt{} é list de nome das fontes, separado pela vírgula. +Ele associa o nome da primeira fonte encontrada no comando \verb+\nomefonte+, o que pode ser usado para selecionar ou definir família de fontes. +Caso nenhuma fonte existir, retorna o valor de \verb+\@iffont@firstfont+ que está como a fonte \texttt{Fira Sans}. % março de 2018 +Em geral, coloca-se o nome de uma fonte existente para evitar de cair no \texttt{Fira Sans}. + +No entanto, \texttt{iffont} só funciona no \XeLaTeX{} (testados nas versões 2016 e março de 2018). +Para que funções do \texttt{iffont} funcione no Lua\LaTeX, reescreva a função \verb++ usando o \verb+\IfFontExistisRF+ do pacote \texttt{fontspec} como em +\begin{singlespacing} +\begin{lstlisting} +... +\usepackage{iftex} +... +\usepackage{iffont} +\ifLuaTeX % patch + % \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 +\end{lstlisting} +\end{singlespacing} + +Com este comando, podemos selecionar fontes da lista, e usar a primeira fonte encontrada. + +\begin{singlespacing} +\begin{lstlisting} +\settofirstfound{\mainfont}{Noto Serif, Latin Modern Serif} +\setmainfont{\mainfont} +\end{lstlisting} +\end{singlespacing} + +Se o que quer é saber se fonte existe, o \texttt{iffont} também tem os comandos \verb+\iffontsexist+\index{iffontsexist@\verb+\iffontsexist+} e \verb+\iffontexists+\index{iffontexists@\verb+\iffontexists+} na qual executa o segundo parâmetro quando fonte existe e terceiro parâmetro quando a fonte não existe. +A diferença é que no \verb+\iffontsexist+, o parâmetro é lista de nome das fontes separado pela vírgula e no \verb+\iffontexists+, o parâmetro é nome de uma única fonte (igual a \verb+\IfFontExistsTF+ do \texttt{fontspec}). +Por exemplo, +\begin{singlespacing} +\begin{lstlisting} +\iffontexists{Noto Serif}{\setmainjfont{Noto Serif}}{% + \PackageWarn{\jobname.tex}{Noto Sans not found. Using default fonts} +\end{lstlisting} +\end{singlespacing} +Configura para \texttt{Noto Serif} só quando ele for acessível. + +%Lembrando novamente que os comandos do pacote \texttt{iffont} não funcionam devidamente no Lua\LaTeX{} (testados nas versões 2016 e março de 2018). +%Se estiver usando o Lua\LaTeX, use \verb+\IfFontExistsTF+ em vez das funções do pacote \texttt{iffont}. + +Se os comandos do pacote \texttt{fontspec} não conseguir encontrar fontes pelo nome, tente usar nome de arquivo. +Normalmente, para fontes instalados dentro da árvore de diretório do \TeX, espera-se que o nome da fonte seja dado pelo nome de arquivo (com extensão) em vez de nome da fonte. + +\section{Usando em conjunto com \texttt{biblatex}} +O documento em vários idiomas pode precisar também de referências bibliográficas em vários idiomas. +O \texttt{biblatex} permite internacionalizar a referência bibliográfica (mesmo sem usar \XeLaTeX/Lua\LaTeX). + +Para especificar o idioma da referência bibliográfica no arquivo \texttt{bib} para \texttt{biblatex}, coloca-se o idioma no campo \texttt{LANGID}\index{biblatex!LANGID} de cada item. +O ``\verb+*_romanized+''\index{biblatex!romanized} é a escrita em alfabeto romano caso o campo esteja em caracter que não seja romano. +Ele será usado para a ordenação e similar. +O campo ``\verb+*_translated_+''\index{biblatex!translated} é a tradução para o \verb++ se referências forem formatados para \verb++. +Veja o Exemplo~\ref{ex17:biblatex:bib}. + +\begin{singlespacing} +%{\jafamily +% \begin{lstlisting}[caption={ex12-05.bib},label=ex12-05:bib] +\begin{lstlisting}[caption={ex17-biblatex.bib},label=ex17:biblatex:bib,escapeinside={[*}{*]}] +@book{wikibooks:latex, + LANGID = {english}, + author={wikibooks}, + title="{\LaTeX{}}", + publisher="wikibooks", + url = "\url{https://en.wikibooks.org/wiki/LaTeX}", + date = {2018}, + urldate={2018-03-05} +} + +@Book{Kawasaki, + LANGID = {japanese}, + TITLE = {[*\textja{バラと折り紙と数学と}*]}, + TITLE_romanised = {bara to origami to sugaku to}, + TITLE_translated_english = {Roses, Origami \& Math}, + AUTHOR = {[*\textja{川崎敏和}*]}, + AUTHOR_romanised = {Kawasaki, Toshikazu}, + PUBLISHER = {[*\textja{森北出版株式会社}*], Japan}, + PUBLISHER_translated_english = {Morikita Syuppan Co. Ltd, Japan}, + year={1998}, + ISBN = {4-627-01671-9} +} +\end{lstlisting} +%} % \jafamily +\end{singlespacing} + +O comando de configuração para \texttt{biblatex} é algo como +\begin{singlespacing} +\begin{lstlisting} +\usepackage[ + backend=biber, + language=auto, +% autolang=other, % for environment from babel and polygrossia +% autolang=langname, % only for polygrossia env. + % bibencoding=utf8, + style=authoryear, +]{biblatex} +\addbibresource{ex17-bibatex.bib} % arquivo bib +\end{lstlisting} +\end{singlespacing} + +A opção \verb+language=auto+ indica que é para selecionar automaticamente o idioma (pelo campo \texttt{LANGID}) +Obviamente, onde quer que apareça a referência bibliográfica, coloca-se o +\begin{singlespacing} +\begin{lstlisting} +\phantomsection % se estiver usando hyperref +\printbibliography[heading=bibintoc] +\end{lstlisting} +\end{singlespacing} + +Note que, até agora, não usamos nada que não funcione no \LaTeX{} normal. +Mas como a referência bibliográfica contém caracteres em japonês, precisará definir o uso de japonês em algum trecho. +Isto será facilitado se estiver usando \XeLaTeX{} ou Lua\LaTeX{} em vez do PDF\LaTeX. +Assim, vamos supor que está usando o \XeLaTeX/Lua\LaTeX{} para prosseguir com a explicação. +Para definir comandos para texto em japonês, coloque o comando +\begin{singlespacing} +\begin{lstlisting} +\usepackage[Ligatures=TeX]{fontspec} +\usepackage{iffont} +\settofirstfound{\mainjfont}{Noto Serif CJK JP, MS Mincho, TakaoMincho, IPAexMincho, Hiragino Mincho Pro} +\settofirstfound{\gothicjfont}{Noto Sans CJK JP, MS Gothic, TakaoGothic, IPAexGothic, Hiragino Maru Gothic Pro} +% If Gothic not found, use Mincho instead. +\IfFontExistsTF{\gothicjfont}{}{\let\gothicjfont\mainjfont} +% If Mincho not found, error. +\IfFontExistsTF{\mainjfont}{\newfontfamily{\jafamily}[BoldFont=\gothicjfont]{\mainjfont}}{% +\PackageError{\jobname}{Japanese Mincho font not found}{Install apropriate ones} +}% +\newcommand{\textja}[1]{{\jafamily #1}} +\end{lstlisting} +\end{singlespacing} +O comando \verb+\jafamily+ será definido quando encontrar algumas fontes da lista. +Também será definido o comando \verb+\textja+ para trecho pequeno. +Note que \verb+\settofirstfound+ do \texttt{iffont} não funciona no Lua\LaTeX{} (testado na versão 2016 e março de 2018). +Então, se quer usar o Lua\LaTeX, deverá udar a sequencia de \verb+\IfFontExistsTF+ em vez de \verb+\settofirstfound+. + +Agora, basta usar o comando para trocar de fontes padrão para fonte japonês onde aparece o texto em japonês. +Veja o Exemplo~\ref{ex17:biblatex:tex}. +\begin{singlespacing} +%{\jafamily +%\begin{lstlisting}[caption={ex12-05.tex}, label=ex:12-05] +\begin{lstlisting}[caption={ex17-biblatex.tex}, label=ex17:biblatex:tex,escapeinside={[*}{*]}] +Figura contendo texto em japonês. +\begin{figure}[hbtp!] +\center +\begin{tikzpicture} + \draw (0,0) circle(2) (0,1) node{\textja{[*\textja{集合}*]}}; + \draw (0,-0.5) circle(1) (0,-0.5) node{\textja{[*\textja{部分集合}*]}}; +\end{tikzpicture} +\caption{Figura com texto em japonês} +\end{figure} + +Sobre uso básico do \texttt{biblatex}, veja o \cite{wikibooks:latex}. +Agora, citando o livro em japonês \textja{\cite{Takami,Kawasaki}}. +\end{lstlisting} +%} % \jafamily +\end{singlespacing} +% +%Terá saída +%\begin{singlespacing} +%\begin{framed} +\begin{ltxlistingout} +Figura contendo texto em japonês. +\begin{center} +\center +\begin{tikzpicture} + \draw (0,0) circle(2) (0,1) node{\textja{集合}}; + \draw (0,-0.5) circle(1) (0,-0.5) node{\textja{部分集合}}; +\end{tikzpicture} + +{Figuraq 1: Figura com texto em japonês} +\end{center} + +Sobre uso básico do \texttt{biblatex}, veja o \texttt{wikibooks} 2018. +Agora, citando o livro em japonês \textja{川崎敏和} 1998. +\end{ltxlistingout} +%\end{framed} +%\end{singlespacing} + +Como a referência bibliográfica contém texto em japonês, colocamos o comando de seleção de fonte japonês. +\begin{singlespacing} +\begin{lstlisting} +\phantomsection % se estiver usando hyperref +{\jafamily \printbibliography[heading=bibintoc]} +\end{lstlisting} +\end{singlespacing} + +e a saída será + +%\let\addcontentsline\emptyaddcontentsline +%\begin{framed} +\begin{ltxlistingout} +{\jafamily +\begin{thebibliography}{99} +%\section*{Referências Bibliográficas} +\bibitem{wikibooks:latex}\texttt{wikibooks (2018)}. \emph{\LaTeX}. wikibooks. URL: \url{https://en.wikibooks.org/wiki/LaTeX} (acesso em 15/03/2018). +\bibitem{kawasaki}川崎敏和 (1998). バラと折り紙と数学と. 森北出版株式会社, Japan. ISBN: 4-627-01671-9. +\end{thebibliography} +} % \jafamily +\end{ltxlistingout} +%\end{framed} +%\let\addcontentsline\oriaddcontentsline +Note que, no exemplo acima, a fonte de todo trecho da referência bibliográfica foi trocada. +Assim, se tiver letras acentuadas na referências bibliográficas que conflitam com letras japonesas, começará aparecer coisas indesejáveis. +Para contornar o problema, ou acentuar no modo \TeX, ou especificar o uso de japonês dentro do arquivo bib a cada trecho, em vez de aplicar no \verb+\printbibliography+. + +No caso de escrever o documento em japonês ou similar, deverá carregar o pacote apropriado que configurará para ambiente do idioma correspondente, ajustando os parâmetros para particularidade daquele país. +Além disso, com o uso do tal pacote, a troca de fontes para japonês e vice versa será automática, sem a necessidade de estar especificando a família de fontes a ser usadas a cada trecho. + +Como observação final sobre \XeLaTeX/Lua\LaTeX, +os comandos protegidos dos pacotes de \XeLaTeX/Lua\LaTeX{} costumam usar ``\verb+_+'' em vez de ``@'' ou em conjunto com ``@''. +Isto foi introduzido no \LaTeX{} pelo equipe de desenvolvimento \LaTeX{} 3 e aparecem nos pacotes mais recentes. +Assim, para usar estes comandos e ambientes no \texttt{preamble}, deverá colocar entre \verb+\ExplSyntaxOn+\index{ExplSyntaxOn@\verb+\ExplSyntaxOn+} e \verb+\ExplSyntaxOff+\index{ExplSyntaxOff@\verb+\ExplSyntaxOff+}. + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +%pacote iffont +% +%Algumas observações sobre unicode-math. +% +%Diferenca de amssymb/amsmath com unicode-math: +%mathbb, mathcal, \verb+\int\limits+ + +%\verb+\removenolimits+ e \verb+\addnolimits+ +%nao permite usar versao com limits e nolimits ao mesmo tempo. + +%\verb+\ExplSyntaxOn+ +%e \verb+\ExplSyntaxOff+ + +%item \verb+\newfontfamily+ do fontspec + +%%%%%%%%%%%%%% APÊNDICE %%%%%%%%%%%%%%%%%%%% +\clearpage\thispagestyle{empty}\cleardoublepage +\appendix +\chapter{Desenvolvendo Pacotes} +Aqui veremos como escrever seu próprio pacote, também chamado de arquivos de estilos. + +\section{Criando pacotes} +Pacote é conjunto de configurações de documentos e definições de comandos ou similares para ser aplicado no documento desejado. +Pacote também é chamado de arquivo de estilos e tem a extensão \texttt{sty}\index{arquivos!sty}. + +Um pacote começa com o cabeçalho. +O comando \verb+\NeedsTeXFormat{LaTeX2e}+\index{NeedsTeXFormat@\verb+\NeedsTeXFormat+} colocado no começo do pacote indica que ele precisa do \LaTeXe. +Em seguida, costuma colocar o comando +%\verb+\ProvidesFile{}[]+\index{ProvidesFile@\verb+\ProvidesFile+}. +\verb+\ProvidesPackage{}[]+\index{ProvidesPackage@\verb+\ProvidesPackage+}. +onde \texttt{} é nome do arquivo, incluindo a extensão e o argumento opcional \texttt{} é a mensagem a ser emitido quando carrega o pacote. +As informações adicionais tais como versões, mensagens de advertência ou erros, etc pode ser emitido pelo comando \verb+\typeout{}+\index{typeout@\verb+\typeout+} a qualquer momento. + +Note que não precisa colocar \verb+\makeatletter+\index{makeatletter@\verb+\makeatletter+} e /\verb+\makeatother+\index{makeatother@\verb+\makeatother+} (nem deve) no arquivo de estilo para acessar comandos que usam ``@'', pois já está com uso de ``@'' ativado por padrão. +No caso de \XeLaTeX/Lua\LaTeX{} que usam pacotes mais modernos, usa ``\verb+_+'' no nome dos comandos. +Para usar estes comandos no \texttt{pramble}, use entre \verb+\ExplSyntaxOn+\index{ExplSyntaxOn@\verb+\ExplSyntaxOn+} e \verb+\ExplSyntaxOff+\index{ExplSyntaxOff@\verb+\ExplSyntaxOff+}. +Também não é necessário no arquivo de estilos. + +É recomendado que use a acentuação n modo \TeX, pois não saberemos a codificação que o usuário final vai usar. + +Dentro do arquivo de estilos, o comando para carregar os pacotes é \verb+\RequirePackage+\index{RequirePackage@\verb+\RequirePackage+} em vez de \verb+\usepackage+. +Para testar se o pacote existe, cheque se tem o arquivo correspondente com o \verb+\IfFileExists+\index{IfFileExists@\verb+\IfFileExists+}. +Não esqueça da extensão do arquivo no nome. +Se arquivo do primeiro parâmetro existir, executará o segundo parâmetro. +Caso não existir, executará o terceiro parâmetro. + +Também é bom checar se não está executando no modo de compatibilidade (modo antigo). +Para isso, usa-se o comando \verb+\if@compatibility+\index{ifcompatibility@{\verb+\if+\arrobasymbforindex\verb+compatibility+}} que é da forma +\begin{singlespacing} +\begin{lstlisting} +\if@compatibility + +\else + +\fi +\end{lstlisting} +\end{singlespacing} +A mensagem de erro é emitido por +\verb+\PackageError{}{}{}+\index{PackageError@\verb+\PackageError+}. +Se for só a advertência, usa-se o comando +\verb+\PackageWarning{}{}+\index{PackageWarning@\verb+\PackageWarning+}. + +Para saber se foi carregado a classe de documento compatível, usa-se o comando \verb+\@ifclassloaded{}+\index{ifclassloaded@{\textbackslash\arrobasymbforindex\verb+ifclassloaded+}} + que tem a forma \verb+\@ifclassloaded{}{}{}+. Quando \texttt{} for usado, executa o \texttt{} e caso não for a \texttt{}, executa o \texttt{}. +Com isso, podemos elaborar o cabeçalho do arquivo de estilo. +O Exemplo~\ref{ex:a:estilo:sty} é uma listagem do exemplo de arquivos de estilos. +\begin{singlespacing} +%\begin{lstlisting}[caption={ex12-07.sty}, label=ex:12-07:sty] +\begin{lstlisting}[caption={ex-a-estilo.sty}, label=ex:a:estilo:sty] +% ex-a-estylo.sty + +\NeedsTeXFormat{LaTeX2e} +% \ProvidesFile{ex-a-estilo.sty}[2018/02/10 v0.5 ex-a-estilo style (require book, amsbook, or report as document class)] +\ProvidesPackage{ex-a-estilo.sty}[2018/02/10 v0.5 ex-a-estilo style (require book, amsbook, or report as document class)] + +\typeout{ex-a-estilo style 0.5 .} + +% Pacotes necessarios + +% Da base e required +\RequirePackage{amsthm, amssymb,amsmath} + +% \RequirePackage[brazil]{babel} + +% pacotes nao obrigatorios do LaTeX +% \RequirePackage{geometry} % carregar sempre + +\IfFileExists{dsfont.sty}% carregar, se existir +{\RequirePackage{dsfont}}{}% + +% testando se tem o pacote instalado e providenciando o +% comando, caso pacote nao exista. +\IfFileExists{hyperref.sty}% +{\RequirePackage{hyperref}}% +{\PackageWarning{ex-a-estilo}{hyperref.sty not found. Using draft mode.}% + \providecommand\url[1]{\texttt{##1}}% +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Para evitar a tentativa de usar no modo de +% compatibilidade com LaTeX antigo (documentstyle) +%----------------------------------------------------------------- +\if@compatibility % modo de compatibilidade com LaTeX antigo? + \PackageError{ex-a-estilo}{Not support older compatible mode (documentstyle)} + {Use documentclass instead of documentstyle} + \endinput +\else + % OK +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% requer book, amsbook, ou report como classe de +% documento (enumeracao do teorema eh vinculado +% ao chapter) +%---------------------------------------------------------- +\@ifclassloaded{book}% Using book? + {}% YES (OK) + {\@ifclassloaded{amsbook}% No, but are using AMS book? + {}% YES (OK) + {\@ifclassloaded{report}% No, but are using report? + {}% YES (OK) + { % No! Then can'not apply this package + \PackageError{ex-a-estilo}{Require book, amsbook, or report as document class} + {Use the required document class} + %\endinput + } + } + } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% definicao dos macros para ambiente de teoremas +% teoremas, lemas, proposi\c{c}\~oes, etc + +\theoremstyle{plain} + +\newtheorem{theorem}{Teorema}[chapter] +\newtheorem{axiom}[theorem]{Axioma} +\newtheorem{corollary}[theorem]{Corol\'ario} +\newtheorem{lemma}[theorem]{lema} +\newtheorem{proposition}[theorem]{Proposi\c{c}\~ao} +\newtheorem{conjecture}[theorem]{Conjectura} + +% defini\c c\~ao de defini\c c\~oes, exemplos, etc. +\theoremstyle{definition} +\newtheorem{definition}[theorem]{Defini\c{c}\~ao} + +\theoremstyle{remark} +\newtheorem{remark}[theorem]{Obserca\c{c}\~ao} + +\newtheorem{note}[theorem]{Nota} +\newtheorem{example}[theorem]{Exemplo} +% +\newtheorem{question}[theorem]{Pergunta} + +% alterando as penalidades (para corte de linhas em...) +\hyphenpenalty=5000 % hifeniza\c{c}\~{a}o +\exhyphenpenalty=500 % palavras com hifem +\binoppenalty=3000 % operador binario (+, - , etc) +\relpenalty=2000 % operador relacional ( = \cong \ne, ...) +\clubpenalty=1000 % ??? +\brokenpenalty=1000 % ??? + +\sloppy % prefere underfull do que overfull + +% conjunto numerico (evitando o real, complexo, etc, + +\newcommand{\Rset}{\mathbb{R}} +\newcommand{\Cset}{\mathbb{C}} +\newcommand{\Zset}{\mathbb{Z}} +\newcommand{\Iset}{\mathbb{I}} +\newcommand{\Qset}{\mathbb{Q}} +\newcommand{\Nset}{\mathbb{N}} + +% Funcoes em portugues (nome da funcao deve ser em romano) +\DeclareMathOperator{\sen}{sen} +\DeclareMathOperator{\arcsen}{arcsen} +\DeclareMathOperator{\senh}{senh} +\DeclareMathOperator{\arcsenh}{arcsenh} + +% Opcoes +\DeclareOption{usedsfont}{ % se usedsfont for usado como opcao + \IfFileExists{dsfont.sty}% + {% + \renewcommand{\Rset}{\mathds{R}} + \renewcommand{\Cset}{\mathds{C}} + \renewcommand{\Zset}{\mathds{Z}} + \renewcommand{\Iset}{\mathds{I}} + \renewcommand{\Qset}{\mathds{Q}} + \renewcommand{\Nset}{\mathds{N}} + }{% + \PackageError{ex-a-estilo}{dsfont.sty not found.}% + {Install dsfont package.}% + } +}% \DeclareOption + +%% Fallback (opcoes nao declaradas) +\DeclareOption*{ + \PackageWarning{ex-a-estilo}{Unknown option '\CurrentOption'} +} + +\ProcessOptions\relax +% fim: ex12-07.sty +\end{lstlisting} +\end{singlespacing} + +Quando o arquivo de estilo usa opções, coloca o que vai fazer quando usar a opção, com o comando +\verb+\DeclareOption{}{}+\index{DeclareOption@\verb+\DeclareOption+}. +lembre-se que não é permitido carregar o pacote dentro da declaração de opções, mas poderemos testar se o pacote existe. + +Quando tem a declaração de opções, deve colocar \verb+\ProcessOptions+\index{ProcessOptions@\verb+\ProcessOptions+} no final do arquivo para que opções fiquem prontos para o uso. + +O Exemplo~\ref{ex:a:estilo:tex} é um exemplo do uso do pacote do Exemplo~\ref{ex:a:estilo:sty}. + +\begin{singlespacing} +%\begin{lstlisting}[caption={ex12-07.tex}, label=ex:12-07] +\begin{lstlisting}[caption={ex-a-estilo.tex}, label=ex:a:estilo:tex] +\documentclass[a4paper,12pt]{book} +\usepackage[T1]{fontenc} % codificação da fonte em 8-bits +\usepackage[utf8]{inputenc} % acentuação direta +\usepackage[brazil]{babel} % em portugues brasileiro + +\usepackage{ex-a-estilo} % arquivo de estilo definido pelo usuário. + +% \usepackage[usedsfont]{ex12-06} % com opcao (se usar este, conjuntos numericos ficam como dsfont, se dsfont estiver instalado) +\begin{document} +\chapter{Teste} + +\begin{definition}\label{def:triangulo:retangulo} +Um triãngulo é dito retãngulo se tiver um ângulo reto. +\end{definition} + +\begin{theorem}[Pitágoras]\label{thm:pitagoras} +Dado um triângulo retãngulo $ABC$ com ângulo reto em $A$, temos que +\begin{equation}\label{eq:pitagoras} +a^2=b^2+c^2 +\end{equation} +\end{theorem} + +\begin{proof} +Demonstração aqui. +\end{proof} + +Usando a definição do $\sen$ e $cos$ juntamente com o Teorema~\ref{thm:pitagoras}, temos que + +\begin{proposition} +\[ +\forall t \in \Rset, \sen^2 t + \cos^2 t = 1 +\] +\end{proposition} +\end{document} +\end{lstlisting} +\end{singlespacing} + +%\let\mathbb\amsmathbb +%\setcounter{lstorichapter}{\value{chapter}} +%\setcounter{lstorisection}{\value{section}} +%\setcounter{chapter}{0} +%\let\addcontentsline\emptyaddcontentsline +%\let\orithispagestyle\thispagestyle +%\makeatletter +%\let\thispagestyle\@gobble +%\makeatother +%\begin{singlespacing} +%\begin{framed} +\let\oriappendixname\appendixname +\let\orithechapter\thechapter +\renewcommand{\appendixname}{\chaptername} +\renewcommand{\thechapter}{\arabic{chapter}} +\begin{ltxlistingout} +\chapter{Teste} + +\begin{definition}%\label{def:triangulo:retangulo} +Um triângulo é dito retângulo se tiver um ângulo reto. +\end{definition} + +\begin{theorem}[Pitágoras]%\label{thm:pitagoras} +Dado um triângulo retângulo $ABC$ com ângulo reto em $A$, temos que +\begin{equation}%\label{eq:pitagoras} +a^2=b^2+c^2 +\end{equation} +\end{theorem} + +\begin{proof} +Demonstração aqui. +\end{proof} + +Usando a definição do $\mathrm{sen}$ e $\cos$ juntamente com o Teorema~1.2%\ref{thm:pitagoras} +, temos que + +\begin{proposition} +\[ +\forall t \in \mathbb{R}, \mathrm{sen}^2 t + \cos^2 t = 1 +\] +\end{proposition} +\end{ltxlistingout} +\let\appendixname\oriappendixname +\let\thechapter\orithechapter +%\end{framed} +%\end{singlespacing} +%\setcounter{chapter}{\value{lstorichapter}} +%\setcounter{section}{\value{lstorisection}} +%\let\mathbb\orimathbb +%% \addtocounter{chapter}{-1} +%\let\thispagestyle\orithispagestyle +%\let\addcontentsline\oriaddcontentsline + +\section{Preenchendo o documento para teste} +Para testar estilo de formatação, as vezes queremos preencher rapidamente o espaço. + +Para isso existe o pacote \texttt{lipsum}\index{lipsum} que permite gerar parágrafos de texto em grego sem sentido. + +O commando \verb+\lipsum+\index{lipsum@\verb+\lipsum+} gera em torno de uma página de texto. +\verb+\lipsum[]+ gera \texttt{} $n$-ésimo parágrafo de texto. +O comando \verb+\lipsum[-]+ gera o $a$-ésimo até $b$-ésimo parágrafo de texto. +Veja o Exemplo~\ref{ex:a:lipsum}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex11-11.tex},label=ex:11-11] +\begin{ltxlisting}[caption={ex-a-lipsum.tex},label=ex:a:lipsum] +% \lipsum % em torno de uma página +\lipsum[5] % quinto parágrafo +% \lipsum[2-3] % de parágrao 2 até parágrafo 3 +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +Note que \texttt{lipsum} gera somente parágrafos de textos. +Para testar fórmulas e listas também, poderá usar o pacote \texttt{blindtext}\index{blindtext} que tem o comando de mesmo nome que gera um texto. + +O comando \verb+\blindtext[]+\index{blindtext@\verb+\blindtext+} gera o texto $n$ vezes. +O comando \verb+\Blindtext+\index{Blindtext@\verb+\Blindtext+} gera um parágrafo. +O parâmetro opcional pode ser usado para repetir $n$ vezes. + +Tem o comando \verb+\blindmathtrue+\index{blindmathtrue@\verb+\blindmathtrue+} que ativa as fórmulas no texto gerado, mas ele só funciona em inglês (definido pelo babel). +Assim, se não estiver em inglês, use o comando \verb+\blindmathpaper+\index{blindmathpaper@\verb+\blindmathpaper+} gera parágrafos de textos e fórmulas. +Veja o Exemplo~\ref{ex:a:blindtext}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex11-11.tex, parte b},label=ex:11-11:b] +\begin{ltxlisting}[caption={ex-a-blindtext.tex},label=ex:a:blindtext] +% \blindmathtrue % funciona somente em ingles +% \blindtext % texto +% \Blindtext % Gera vários parágrafos +\Blindtext[1] % um parágrafo de textos +%\blinditemize % lista de itens +%\blindenumerate % lista de enumeracao +%\blinddescription % lista de descricao +%\blindmathpaper % texto e formulas. +%\blinddocument % documento com secao, subsecao, listas, etc. Nao inclui formulas +% \Blinddocument % documento longo, com texto com secao, subsecao, listas, etc. Este inclui formulas +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +\clearpage\thispagestyle{empty}\cleardoublepage +\chapter{Usando o Editor \LyX} +Neste apêndice, será explicado o bścio sobre o editor \LyX\index{LyX@\LyX}. +\LyX{} é um editor do tipo \texttt{WYSIWYG} (o que você vê é o que você obtém) e poderá editar o documento de forma similar ao aplicativo de escritório, mas processando o documento final com o \LaTeX. + + +\section{Visualização do documento final} + +Para compilar/ver o documento, poderá usar o formatos comumente suportados +pelo \LaTeX{}. O botão de ``visualizar'' (botão de olho, que fica +no lado esquerdo) é usado para visualizar o documento em PDF. + +Se estiver usando o pacote que precisa ser compilado para dvi como +o pacote gráfico \texttt{pstrick} e \texttt{psfrag}, poderá escolher outro formato de visualização em ``visualizar outros formatos'' (botão que fica mais a direita, com olho e um pequeno triangulo). + +O uso do pacote \texttt{hyperref} é recomendado para que o \LaTeX{} crie links automáticos, assim como o \texttt{bookmarks} (indicadores). +Os usuários de Windows, deve considerar em evitar o uso do Adobe Reader na fase de elaboração, por ser pesado e apresentar dificuldade de interagir com os editores de \LaTeX. +Uma boa opção é o freeware \texttt{SumatraPDF}\index{SumatraPDF}. + +Lembre-se que o \LyX{} permite exportar/importar arquivos fonte em +\LaTeX, além de vários outros formatos na qual existem conversores +gratuitos do/para \LaTeX. + +\textbf{Dicas:} Para facilitar a navegação do documento em elaboração, +é bom ativar o ``Exibir->Painel de estrutura de tópicos''. +Se usar o código \LaTeX{} inserido no documento com frequência, como o do +pacote \texttt{tikz}, seria bom ativar a pré-visualização na ``Ferramentas->Preferências'' e em ``Aparências \& Comportamento'', ítem ``Exibição'', na ``Pré-visualização Instantanea'', escolher ``sem matemática'', e colocar pré-visualização no bloco que contém a caixa de \LaTeX{} que julgar conveniente, com ``Inserir->Pré-visualização''. +Se quer que toda fórmula matemática tenha pré-visualização automática, poderá escolher ``ligado'' em vez de ``sem matemática''. +No entanto, as equações no modo ``Instant Preview'' ficará com a mesma cor do texto, tornando mais difícil de identificar rapidamente, o que não é recomendável. +Para ver como ficaria o código \LaTeX{} em edição, poderá ativar o ``View->View source''. +Se o texto todo ficar sublinhado em vermelho, ou não sublinha a palavra errada, pode ser que o corretor ortográfico não está selecionado corretamente. +Vá em ``Ferramentas->Preferênias'' e em ``Configurações de Idiomas'', item ``Verificador Ortográfico'', escolha um verificador em ``verificador ortográico''. +Também certifique de que botão de ``verificar ortografia continuamente'' (Botão ABC sublinhado em vermelho). + +Depois de tudo pronto, ``file->export'' permite criar arquivo final +no formato desejado. + +Note que maioria dos editores de \LaTeX{} salva o documento antes de +compilar, mas o \LyX{} não faz isso. +É necessário salvar manualmente sempre que convém. + +\section{ABC do \LyX} + +%O \LyX{} tem as ferramentas visuais e edição visual do documento, +%mas precisará conhecer a estrutura e o funcionamento do \LaTeX{} +%para usar corretamente. Também é aconselhável que tenha um pouco de +%conhecimento sobre como escrever fórmulas matemáticas no LaTeX. Para +%tanto, consulte o manual de LaTeX na medida do necessário. + +O tutorial e guias do usuário do \LyX{} pode ser acessado pelo ``Help->Tutorial'' e ``Help->User's Guide'' respectivamente. + +Também é importante notar que copiar/colar padrão funciona somente +entre trechos de documentos do \LyX. + +Caso de colar trecho de código do outro aplicativo como navegador de internet ou editor de texto para o campo de comando \LaTeX{} (botão \TeX{} ou L), use o colar especial (editar->colar especial->texto simples) ou ctrl+shift+v, para não perde a quebra de linhas. + +No lado esquerdo da barra de ferramentas, poderá escolher o tipo de texto (parágrafo). +Alguns dos mais importantes são: + +\begin{description} +\item[Standard] texto normal. + +\item[Itemize] lista não enumerada. + +\item[Enumerate] lista enumerada. + +\item[Chapter] Título do capítulo + +\item[Section] Título da seção. + +\item[Subsection] Título da subseção. + +\item[Lyx-code] O texto como foi escrito, inclusive quebra de linhas +(para colocar algorítmo, código fonte do programa, etc). +\end{description} + +Outra forma de colocar comentário no documento é através da nota inserido por ``insert->note'' que é adequado para notas mais longas por poder ``fechar'' a ``caixa de notas''. + +As ``caixas'' como de notas, \TeX{}, Figure, etc tem um botão junto a ``caixa'' e clicando nele, poderá abrir ou fechar, para facilitar a editoração. % Experimente na ``caixa'' de nota acima (no \LyX{}). +O fato de caixa estar fechada ou aberta não influencia no processamento do documento final. + +Como notas não serão impressas, também serve para desativar temporariamente o trecho do documento, selecionando e clicando em ``insert->note''. +Para desfazer a caixa de notas ou similares, use o ``disolve->inset'' acessível pelo botão direito sobre caixa de notas ou similares. + +%Observemos que a versão com {*} como ``chapter{*} ``, ``section{*}``, etc não serão enumeradas e não vão para o sumário. + +%Quando insere uma imagem externa, ele é colocado como referências +%(link). Isto quer dizer que a figura fica fora do documento (não dentro +%do arquivo como nos aplicativos Office). Isto quer dizer que as imagens +%não devem ser apagadas e quando copiar o documento \LyX{}, deverá +%copiar imagens juntas. No documento final em PDF, estas imagens serão +%convertidas e inseridas dentro do documento PDF. + +Apesar de \LyX{} efetuar conversão automática de imagens, quando pretende exportar o código para \LaTeX, é bom deixar convertido para pdf/jpg/png (para PDF\LaTeX{} usado atualmente) ou eps (para \LaTeX{} antigo) a fim de evitar problema de compatibilidade de imagem com o código fonte em (PDF)\LaTeX{}. + +\textbf{Acertando a configuração do documento} + +No ``Documento'', escolha a classe de documento, margens e tamanho +das fontes. + +Quando compila um documento, o \LyX{} costuma colocar uma opção de +usar o pacote \texttt{amsmath}, mas no caso de inserir o comando de \TeX{} +diretamente, pode não ser detectado a necessidade de \texttt{amsmath}. + +Para resolver este caso, entre em ``Document->settings'' e no ``math Package'', tire o check do ``use amsmath package automatically'' e cheque em ``use ams package''. +O problema similar pode acontecer quanto inclui figuras, usar cores, etc dentro da caixa de \LaTeX, sem estar usando fora dela. +Neste caso, carregue os pacotes necessários, colocando o comando \LaTeX{} \verb+\usepackage+ no \texttt{preamble} (Document->Settings, [LaTeX Preamble]). + +Configuração do documento como estilo, margens, etc podem ser alterado +pelo ``Document->Settings'' em qualquer momento. + +Quando colar trecho de um documento para outro, pode ficar com a especificação da linguagem diferente e começar a ser sublinhado. +Neste caso, selecione este trecho e no ``text style'' (botão com letras ``ab''), escolha o ``reset'' na opção de [linguagem]. + +\textbf{Inserindo o comando de \LaTeX} + +Para colocar pacotes adicionais, definições, configurações adicionas, +etc que ainda não está disponível no \LyX{} (ou que não tem paciência +de descobrir como fazer), deverá ser colocado no campo de ``preamble'' +em ``Document->settings, [LaTeX Preamble]'', usando o comando +de \LaTeX. +No preamble, deverá usar acentuação no modo \TeX{} para evitar problemas de portabilidade. + +Quando precisar colocar um comando extra de \LaTeX, clique no botão ``\TeX'' ou pressione L na qual insere uma caixa de comando \LaTeX, podendo colocar qualquer comando válido de \LaTeX. +Para evitar problemas, coloque um espaço (ou par de chaves) no final do campo de comandos de \LaTeX, caso finalizar com o comando \LaTeX. + +O comando \LaTeX{} pode ficar divididos. +Por exemplo, uma caixa contém \verb+\begin{ambiente}+ e outra caixa contém \verb+\end{ambiente}+ para colocar trecho do código no ambiente desejado. + +Note que o campo de fórmulas também aceitam diretamente os comandos +de \LaTeX{}. + +\textbf{Para letras acentuadas fora do corpo do documento} + +O campo exibido na janela separada como no caso do preamble (Document->Settings, [LaTeX preamble]), entrada de índice remissivo (insert->index +entry), etc usam a exibição nativa do sistema. +Assim poderá apresentar problemas na exibição ou compilação quando muda de sistema operacional. +Para evitar problemas de portabilidade, use a acentuação pelo comandos +\TeX{} nestes casos. +Caixa de código \LaTeX{} (inserido com botão \TeX{}) não apresenta este tipo de problemas. + + +\section{Formatando textos} + +Para alterar o tipo de fontes do texto, selecione o trecho e clique +no botão ``\emph{abc}''. +Nele tem a opção de escolher a família, forma e peso. + + +%\textbf{Family:} roman (serifado) é usado para o corpo do documento; +%sans serif (sem serifa) pode ser usado para títulos; typewriter (maquina +%de escrever) é usado para trecho que deve ser lido no pé da letra +%(código fonte do programa, nome de arquivos, etc). +% +%\textbf{Series:} medium (normal) e bold (negrito). Tecla de atalho +%para negrito é b. +% +%\textbf{Shape:} upright (reto) usado para corpo do documento; italic +%(itálico) usado para destacar palavra a ser definido ou corpo do enunciado +%do teorema, etc; slanted (inclinado, mas não é itálico) que deve ser +%evitado o seu uso quando está usando o itálico; small caps (caixa +%alta) útil para títulos. +% +%\textbf{size:} Ele esta na ordem crescente, onde normal é o tamanho +%normal do documento. +% +%\textbf{misc:} emph (enfatizar) usado para enfatizar palavra dentro +%do texto, alterando entre fontes itálico e reto (botão de ``E'' +%na barra de ferramenta - tecla de atalho é e); underbar (sublinhada); +%noun é maiúsculo. + +O \texttt{emph} fica na opção \texttt{misc} e \texttt{language} permite escolher idioma neste trecho. +Note que b é atalho para negrito e e é atalho para enfatizar. + +% +% +%\textbf{language:} linguagem em que o texto está escrito. A hifenização, +%corretor ortográfico, etc é efetuado com a linguagem especificada. + +A opção ``reset'' de cada item restaura o item correspondente como padrão do +documento. + +O botão ``A com seta redonda'' aplicará a última configuração. +Para saber o que cada botão faz, posicione o mouse sobre o botão e deixe +parado para aparecer o texto informativo. + +Para criar um novo parágrafo ou linhas: + + cria novo parágrafo + ++ quebra de linha (sem parágrafo) + ++ espaço forçado (\verb+~+ de \LaTeX). + +Note que, para inserir linhas vazias, deve alterar (quebras de linhas +ou parágrafo) com o espaço forçado. + +%\texttt{~} +% +%\texttt{~} +% +%\texttt{~} +% +%\texttt{~} +% +%Notas de rodapé\footnote{Notas de rodapé já ficará com espaço simples como exigido, por estar +%redefinido no arquivo de estilo. Também foi eleminado indentação para +%caber mais, apesar de não ser a exigência} pode ser inserido pelo ``insert->footnote''. + +\section{Matemática\label{sec:matematica}} + +Fórmulas matemáticas dentro do texto denominado de \texttt{``inlinestyle''} +(textstyle) pode ser inserido, clicando no ícone de somatório $\sum$ na barra de ferramentas, ou com menu ``insert->math->inline formula'' ou +com a tecla M. + +Para inserir símbolos e fórmulas, podemos usar o painel matemático +ativado quado o cursor está dentro da caixa de fórmulas. +Para criar fórmulas de maneira rápida, é recomendado memorizar alguns comandos básicos de \LaTeX{} que podem ser digitados (em vez de clicar no +mouse). + +%Alguns deles são +% +%\texttt{x\textasciicircum{}2\_i} $x_{i}^{2}$ +% +%\texttt{\textbackslash{}int\_a\textasciicircum{}b} +%$\int_{a}^{b}$ +% +%\texttt{\textbackslash{}frac ab} $\frac{a}{b}$ +% +%\texttt{\textbackslash{}alpha} $\alpha$ +% +%\texttt{\textbackslash{}beta} $\beta$ +% +%\texttt{\textbackslash{}pi} $\pi$ +% +%\texttt{\textbackslash{}sum\_i=1\textasciicircum{}n} +%$\sum_{i=1}^{n}$ +% +%\texttt{\textbackslash{}infty} $\infty$ +% +%\texttt{\textbackslash{}partial} $\partial$ +% +%\texttt{\textbackslash{}ge} $\ge$ +% +%\texttt{\textbackslash{}le} $\le$ +% +%\texttt{\textbackslash{}ne} $\ne$ +% +%\texttt{\textbackslash{}cos x} $\cos x$ +% +%\texttt{\textbackslash{}sin x} $\sin x$ +% +%\texttt{\textbackslash{}ln x} $\ln x$ +% +%\texttt{\textbackslash{}sup x} $\sup x$ +% +%\texttt{\textbackslash{}lim x} $\lim x$ +% +%\textbackslash{}sqrt x $\sqrt{x}$ +% +%\textbackslash{}root n x $\sqrt[n]{x}$. +% + +Note que o \LyX{} tem dificuldade em lidar com o parâmetro opcional +no modo matemático, dificultando o uso da forma \verb+\sqrt[n]{x}+. +Para contornar, foi definido o comando \verb+\root+ no \LyX{} que não é definido por padrão no \LaTeX{}. + +Para descobrir nomes de comandos \LaTeX{} que estão no ``Painel Matemático'', posicione o mouse sobre símbolos no ``Math Panel'' (mostrado quando o cursor está na fórmula) que exibirá o nome de comando. + +Uma fórmula numa linha independente denominado de ``displaystyle'' +pode ser criado com Control+Shift+M ou pelo menu ``insert->math->Display +formula''. + +Para sair rapidamente da fórmula, pressione o ``ESC'' que posicionará +o cursor logo após a fórmula em edição. + +%A posição dos limites no ``inlinestyle'' não ficam embaixo/encima +%para economizar altura da fórmula, como em $\sum_{n=1}^{\infty}\frac{1}{n}=\infty$. +%Se quer que estas e outras exibições no ``inlinestyle'' fiquem igual +%ao do ``displaystyle'', poderá usar o comando do \LaTeX{} \textbackslash{}displaystyle. +%Digite \textbackslash{}displaystyle seguido de espaço. Na ``caixinha'' +%criada, a fórmula digitado ficará no modo ``displaystyle'' como +%em ${\displaystyle \sum_{n=1}^{\infty}\frac{1}{n}=\infty}$ mesmo +%no meio do texto. + +Para converter tipo de fórmulas já digitadas, clique o botão direito +sobre a fórmula e escolha o novo tipo de fórmula. +Também pode posicionar o cursor na fórmula e use o ``edit->math->change formula type''. + +A função por partes pode ser criado com ``cases'', inserido com +botão direito do mouse sobre a fórmula, ou pelo menu ``insert->math->cases''. + +Nas fórmulas multi linhas, +ENTER abre uma nova linha. + +%$|x|=\begin{cases} +%x & ,x\ge0\\ +%-x & ,x<0 +%\end{cases}$ + +%Para inserir texto no meio da fórmula, use o comando \textbackslash{}text +% +%\begin{eqnarray*} +%f(x) & = & \begin{cases} +%x^{2}, & \text{ se }x>0\\ +%-x^{2}, & \text{ se }x\le0 +%\end{cases} +%\end{eqnarray*} +% +%Poderá inserir parentes ou similares usando o comando \textbackslash{}left +%e \textbackslash{}right em vez do painel. +% +%Por exemplo, ''\textbackslash{}left. x\textasciicircum{}2 \textbackslash{}right +%{]}`` produz $\left.x^{2}\right]$. As vezes, isto torna mais rápido +%do que usar o painel de inserção de delimitadores. + +As fórmulas que ocupa uma linha independente tais como ``Display fórmula'' (fórmula no modo ``displaystyle''), ``AMS align environment'', +etc podem ser enumerados automaticamente. + +Para ativar/desativar enumeração na equação com linha independente, clique no botão direito do mouse sobre a fórmula, ou use o menu ``edit->math->toggle numbering''. + +Para referenciar equações ou elementos enumerados, +% como +% +%\begin{equation} +%a^{2}=b^{2}+c^{2}\label{eq:pitagoras} +%\end{equation} +use o botão de etiqueta para inserir rótulo e referência cruzada (que +fica no lado) para inserir referências.% \ref{eq:pitagoras}. + +\clearpage\thispagestyle{empty}\cleardoublepage +\chapter{Para Organizadores do Evento} + +Aqui, veremos alguns pacotes úteis para organizadores de eventos. +Um deles é a mala direta no \LaTeX, útil para emitir certificados e outro é para criar caderno de trabalhos apresentados. + +\section{Mala direta no \LaTeX} +Certificados de congressos científicos pode conter fórmulas nos títulos, o que complica a mala direta nos aplicativos de escritórios. +Assim, costumamos efetuar mala direta no \LaTeX. + +Mala direta pode ser efetuado pelo \texttt{datatool}\index{datatool} que lê os dados de um arquivo \texttt{CSV}. +Após carregar o \texttt{datatool}, comece configurando o separador de colunas e delimitador de campos. +\begin{singlespacing} +\begin{lstlisting} +\DTLsetseparator{,} % Separador de campos +\DTLsetdelimiter{"} % delimitador de celulas +\end{lstlisting} +\end{singlespacing} + +Para acessar o arquivo \texttt{CSV}, usa-se o comando +\verb+\DTLloaddb{lista}{ex-c-lista-nomes.csv}+\index{DTLloaddb@\verb+\DTLloaddb+} para associar o arquivo \texttt{ex-c-lista-nomes.csv} na \texttt{lista}. +Assim, ao referenciar \texttt{lista}, estará referenciando o arquivo \texttt{ex-c-lista-nomes.csv} + +A primeira linha do arquivo \texttt{ex-c-lista-nomes.csv} é assumido que é título, isto é., contém nome das colunas. +Caso não tenha linha de título, poderá providenciar como em +\verb+\DTLloaddb[noheader,keys={Nome,Trabalho}]{lista}{lista.csv}+. +Neste caso, está indicando que não há linha de título no arquivo e está colocando nomes \texttt{Nome} e \texttt{Trabalho} na primeira e segunda coluna do arquivo de dados. + +Agora podemos efetuar um laço e repetição por algo como +\begin{singlespacing} +\begin{lstlisting} +\DTLforeach{lista}{% +\personname=Nome,\worktitle=Trabalho}{% +... +} % \DTLforeach +\end{lstlisting} +\end{singlespacing} + +O primeiro parâmtro do comando \verb+\DTLforeach+\index{DTLforeach@\verb+\DTLforeach+} é a lista de associação de comandos com valor do campo. +\verb+\personname=Nome+ e \verb+\worktitle=Trabalho+ associa o campo (dado da coluna) \texttt{Nome} para o comando \verb+\personname+ e o campo \texttt{Trabalho} para o comando \verb+\worktitle+. +O segundo parâmetro são comandos a serem executados. +O arquivo de entrada e como do Exemplo~\ref{ex:c:certificado:csv} + +\begin{singlespacing} +\begin{lstlisting}[caption={ex-c-lista-nomes.csv},label=ex:c:certificado:csv] +"Nome","Trabalho","Observacao" +"Nome 1","Trabalho 1", +"Nome 2","Trabalho 2", +"Nome 3","Trabalho 3", +... +\end{lstlisting} +%\begin{center} +%\lstlistingname~\refstepcounter{lstlisting}\thelstlisting: lista-nomes.csv\label{ex:c:certificado:csv} +%\end{center} +%\begin{framed} +%\begin{verbatim} +%"Nome","Trabalho","Observacao" +%"Nome 1","Trabalho 1", +%"Nome 2","Trabalho 2", +%... +%\end{verbatim} +%\end{framed} +\end{singlespacing} + +Agora, o certificado pode ter enfeites como molduras, logotipos, etc. + +Ele será diagramado para papel a5, para ser impresso no papel a4 ampliando-o. Fonte também será alterado para \texttt{bookman} que é uma serifa grossa, ideal para letras maiores como este. +Veja o Exemplo~\ref{ex:c:certificado}. + +\begin{singlespacing} +\lstinputlisting[caption={ex-c-certificado.tex},label=ex:c:certificado]{latex-via-exemplos-certificado} +\end{singlespacing} +% +Um dos certificados gerados é como segue. +\begin{framed} +\center +\includegraphics[page=1, width=0.7\linewidth]{latex-via-exemplos-certificado} +\end{framed} + +Note que, o que deixou o código complexo foi o sombreamento. + +\section{Caderno de resumos} +Quando recebe vários artigos e quer ``encadernar'', poderá usar a classe \texttt{combine}\index{combine} em vez de gerar PDF de cada um e grudar. +A classe \texttt{combine} agrupa os artigos automaticamente em um único documento, gerando ``caderno'' de artigos. + +Para usar o \texttt{combine}, todos documentos que serão incluídos nele devem estar usando a mesma classe que podem ser \texttt{memoir}, \texttt{book}, \texttt{report}, \texttt{letter} ou \texttt{article}. +As classes não suportadas oficialmente como o \texttt{amsart} pode precisar de ajustes manuais para funcionar perfeitamente. + +%Para \texttt{combine}, o papel está fixado. +%Assim, deverá usar o pacote \texttt{geometry} para efetuar ajustes de papel, se necessário. + +A classe \texttt{combine} requer mais recursos que o documento normal. +Assim, para aumentar memória reservada para isso, coloque +\begin{singlespacing} +\begin{lstlisting} +\usepackage{etex} % to use etex extensions +\reserveinserts{28} % using etex extensions +\end{lstlisting} +\end{singlespacing} +no preamble se ocorrer o erro do tipo ``No room for ...''. +Se ainda ocorrer erro, aumente o valor 28 para 50, por exemplo. + +Note que \verb+\maketitle+ ou \texttt{titlepage} é necessário. +Se não existir, causa erros. + +Para gerar sumário de artigos incluídos, carregue o pacote \texttt{combinet}\index{combinet}. +Para usar recursos do \texttt{natbib}, carregue o pacote \texttt{combnat}\index{combinat} no lugar de \texttt{natbib}. + +O modo padrão é ignorar os pacotes carregados pelos artigos. +Assim, todos pacotes necessários devem estar carregados no arquivo mestre (arquivo do \texttt{combine} que vai incluir artigos). + +Vamos supor que artigos a serem incluídos tem a forma como no Exemplo~\ref{ex:c:conferencia}. + +\begin{singlespacing} +\begin{lstlisting}[caption={ex-c-conferencia1.tex},label=ex:c:conferencia] +documentclass[10pt,a4paper]{article} +% Este arquivo sera processado automaticamente por um programa. +% Por favor nao altere nada no preamble (ate \begin{document} ). +\usepackage[utf8]{inputenc} +\usepackage[english,brazil]{babel} +\usepackage{amsmath} +\usepackage{amssymb} % Ele carrega amsfonts tambem +\usepackage{enumerate} +% Por favor nao inclua outros "packages". +\begin{document} +\title{Título da Conferência 1} +\author{Autor da conferência 1} +\maketitle + +Texto da conferência 1 +% Incluir bibliografia e opcional. Se decidir inclui-la use o formato abaixo + +%\begin{thebibliography}{99} +%\bibitem{key1} Lamport, L. \emph{LaTeX: A Document Preparation System}, Addison-Wesley, \textbf{1986}. +%\end{thebibliography} +\end{document} +\end{lstlisting} +\end{singlespacing} + +Então o caderno, pode ser criado como no Exemplo~\ref{ex:c:caderno}. + +\begin{singlespacing} +\begin{lstlisting}[caption={ex-c-caderno.tex},label=ex:c:caderno] +\documentclass[12pt,a5paper]{combine} +% combine supports: memoir, book, report, and article + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% If the error ``No room for ..'' occur, increase the reserved insets +\usepackage{etex} % to use etex extensions +\reserveinserts{28} % using etex extensions + +% To create table of cotents automatically +\usepackage{combinet} + +% Todos pacotes usados nos artigos a ser importados +\usepackage[utf8]{inputenc} + +\usepackage{amsmath} +\usepackage{amssymb} % it's include amsfonts too +\usepackage{enumerate} +\usepackage[english,brazil]{babel} + +% packages usados somente no corpo de anais do congresso +\usepackage{graphicx} +\usepackage{geometry} +\geometry{lmargin=2.5cm,rmargin=2cm,tmargin=2cm,bmargin=2cm} + +\sloppy % prefer underfull +% \fussy % prefer overfull + +% No combine, chamada de \maketitle é obrigatorio. +% Assim, quando faz a capa manualmente, deverá desabilitar isto +\makeatletter\c@lmtitlempty\makeatother + +\begin{document} +% capa +\begin{titlepage} +\begin{center} + \thispagestyle{empty} + \begin{flushleft} + \noindent + \unitlength=0.04\textwidth + \begin{picture}(0,0)(2,33) + % \includegraphics[width=1.16\textwidth]{fundo} + \end{picture} + \end{flushleft} + {\Large T\'ITULO DO CONGRESSO} \\ + HOMENAGEM, ETC. + + \vfill + {\huge Resumos de apresentações \\ + (Abstract of talks and posters)} + \vfill + DATA + \vfill + LOCAL + \vfill +\end{center} +\end{titlepage} + +% contra capa +\clearpage +\thispagestyle{empty} +\noindent +{\bfseries Comitê Científico (Scientific Comittee)} \\ +Membro 1 (Instituição 1) \\ +Membro 2 (Instituição 2) + +\ + +\noindent +{\bfseries Comissão Organizadora (Organizing Comittee)} \\ +Membro 1 (Instituição 1) \\ +Membro 2 (Instituição 2) + +\ + + \begin{flushright} + \begin{minipage}{0.9\textwidth} + Realização (Hosted by): \\ + INSTITUIÇÕOES + \end{minipage} + \end{flushright} + +\clearpage +\newpage + +% Table of contents +% \pagestyle{combine} +\pagestyle{plain} + +\tableofcontents +\clearpage +~ % um espaço para gerar página não vazia +\newpage % pulando uma página + +% Importa artigos de conferências +% Usar o comando \import em vez de \input ou \include +\begin{papers} +\import{conferencia1} +\import{conferencia2} +... +\end{papers} + +\end{document} +\end{lstlisting} +\end{singlespacing} + +Note que foi diagramado no papel \texttt{A5} para poder efetuar \texttt{booklet}\index{booklet} (colocar duas páginas em uma, reordenar para grampear no meio) no papel \texttt{A4}. +O processo de \texttt{booklet} costuma ser feito no aplicativo como o \texttt{jPDFTWeak} (\url{http://jpdftweak.sourceforge.net/}). + +%certificados. + +%caderno de resumos + +\clearpage\thispagestyle{empty}\cleardoublepage +\chapter{Para Professores} + +Será tratado algumas questões úteis aos professores. + +\section{Lista de exercícios e provas} + +Nas provas ou listas de exercícios, os itens são curtas. +Neste caso, é aconselhável que coloque mais de um item por linha, mas mantendo alinhamento. + +Existem vários pacotes para elaboração de lista de exercícios e provas. +Aqui será apresentado uma delas. +O pacote \texttt{exsheets}\index{exsheets} implementa o ambiente \texttt{question}\index{question} para produzir questionário enumerado e o pacote \texttt{tasks}\index{tasks} permite colocar vários itens em uma única linha. + +Veja o Exemplo~\ref{ex:d:exsheets}. + +\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex12-10.tex},label=ex:12-10] +\begin{lstlisting}[caption={ex-d-exsheets.tex},label=ex:d:exsheets] +\documentclass[12pt,a4paper]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage[brazil]{babel} +\usepackage{tasks} % cria lista curta +\usepackage{exsheets} % cria questoes +\SetupExSheets[question]{type=exam} % configurando + +\begin{document} +% O ambiente question produz questões. + +\begin{question} + Qual item não é metal? + % itens da questão será produzido pelo ambiente tasks + \begin{tasks}(4) % 4 itens por linha + \task ferro + \task carbono + \task cobre + \task mercúrio + \end{tasks} +\end{question} + +% Alterando a enumeração de tasks +\settasks{ + counter-format=(tsk[r]), % entre parenteses, em romano minusculo + label-width=4ex % largura reservada para rótulo +} + +\begin{question} + O que é mamífero? + \begin{tasks}(2) % 2 itens por linha + \task Animais que botam ovos. + \task Animais que amamentam. + \task Animais que voam. + \task Animais com 4 patas. + \end{tasks} +\end{question} +\end{document} +\end{lstlisting} +%\end{LTXexample} +\end{singlespacing} +% +\begin{ltxlistingout} +\begin{question} + Qual item não é metal? + +% \begin{tasks}(4) % 4 itens por linha coloca ultimo item na linha seguinte +% Isto acontece somente dentro do minipage e com uso do geometry + \bigskip +~~ a) ferro \hfill +b) carbono \hfill +c) cobre \hfill +d) mercúrio \hfill ~ +\end{question} + +% Alterando a enumeração de tasks +\settasks{ + counter-format=(tsk[r]), % entre parenteses, em romano minusculo + label-width=4ex % largura reservada para rótulo +} + +\begin{question} + O que é mamífero? + \begin{tasks}(2) % 2 itens por linha + \task Animais que botam ovos. + \task Animais que amamentam. + \task Animais que voam. + \task Animais com 4 patas. + \end{tasks} +\end{question} +\end{ltxlistingout} + +\section{Com e sem respostas} +As vezes, queremos gerar versões com resposta e outro sem, ou que resposta fique no final do documento, mas que seja diagramado junto as questões. +Neste caso, podemos usar o pacote \texttt{answers}\index{answers} (existem vários pacotes para tal propósito). +Veja o Exemplo~\ref{ex:d:answers}. + +%%\setcounter{lstorichapter}{\value{chapter}} +%\setcounter{lstorisection}{\value{section}} +%%\setcounter{chapter}{0} +%\setcounter{section}{0} +\let\orithesection\thesection +\renewcommand{\thesection}{\arabic{section}} +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex12-11.tex},label=ex:12-11,preset=\let\addcontentsline\emptyaddcontentsline] +\begin{ltxlisting}[caption={ex-d-answers.tex},label=ex:d:answers] +\documentclass[12pt,a4paper]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage[brazil]{babel} + +\usepackage{answers} % resposta no arquivo separado +%\usepackage[nosolutionfiles]{answers} % resposta no lugar + +\usepackage{amsthm} + +% "sol" é ambiente a ser usado. "Solution" não deve ser modificada. A resposta sera gravada no arquivo referenciado internamente por "ans" +\Newassociation{sol}{Solution}{ans} +% \renewcommand{\solutionextension}{ans} + +\newtheorem{ex}{Exercicío}[section] % ambiente de exercicios + +\begin{document} +% inicia a gravacao da resposta no arquivo "ans" cuja nome externo e \jobname-ans (\jobname e nome do arquivo atual) +\Opensolutionfile{ans}[\jobname-ans] + +\section{Problemas} + +\begin{ex} +Primeiro exercício. +\begin{sol} +Solução do primeiro exercio. +\end{sol} +\end{ex} + +\begin{ex} +Segundo exercício. +\begin{sol} +Solução do segundo exercício. +\end{sol} +\end{ex} +\Closesolutionfile{ans} % finaliza a gravação das respostas + +\section{Soluções} +\Readsolutionfile{ans} % colocar solucoes do "ans" aqui. +\end{document} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} +%%\setcounter{chapter}{\value{lstorichapter}} +%\setcounter{section}{\value{lstorisection}} +\let\thesection\orithesection +%\let\addcontentsline\oriaddcontentsline + +%shortlst, Nao, por causa da licenca. + +%\usepackage{tasks}. +%\usepackage{exsheets} +%\usepackage{answers} % put answer in the separated file +%%\usepackage[nosolutionfiles]{answers} % put answer in the place + +\clearpage\thispagestyle{empty}\cleardoublepage +\chapter{Para Projetos} + +Aqui será tratado de pacotes úteis ao desenvolvimento de documentos grandes como livros. + +\section{Pacote \texttt{standalone}} +Quando cria muitas ilustrações e diagramas, as vezes deixamos estas ilustrações como arquivo separado para compilar e ajustar mais rapidamente. +Por exemplo, cada ilustração em \texttt{tikz} pode estar em um único arquivo e o documento principal inclui eles. +Neste caso, não podemos usar \verb+\input+, nem \verb+\include+ pois a ilustração tem sua própria classe de documento. +Neste caso, podemos usar a classe \texttt{standalone}\index{standalone}. +Cada ilustração de \texttt{tikz} usará a classe \texttt{standalone} em vez do \texttt{article} ou similar. +Assim, podemos compilar e ajustar a ilustração quando bem entender. +No documento principal, use o pacote \texttt{standalone}\index{standalone} e demais pacotes que arquivos inclusos podem precisar. +Para incluir a ilustração feito pela classe \texttt{standalone}, basta usar \verb+\input+\index{input@\verb+\input+} ou similar. + +A figura diagramado com a classe \texttt{standalone} é como do Exemplo~\ref{ex:e:standalone:fig}. + +%\begin{singlespacing} +%\begin{LTXexample}[pos=b,caption={ex12-12-fig.tex},label=ex:12-12:fig] +\begin{ltxlisting}[caption={ex-e-standalone-fig.tex},label=ex:e:standalone:fig] +\documentclass[12pt,a4paper]{standalone} +\usepackage[utf8]{inputenc} +\usepackage{tikz} +\usetikzlibrary{patterns} +\begin{document} +\begin{tikzpicture} +\draw[pattern=north east lines] (-1,-1) rectangle(1,1); +\draw[fill=white] (0,0) circle(1); +\end{tikzpicture} +\end{document} +\end{ltxlisting} +%\end{LTXexample} +%\end{singlespacing} + +O documento que usa a figura, usa o pacote \texttt{standalone} e usa o \verb+\inpyut+ para incluir o arquivo de figura, como no Exemplo~\ref{ex:e:standalone}. + +\begin{singlespacing} +\begin{lstlisting}[caption={ex-e-standalone.tex},label=ex:e:standalone] +\documentclass[12pt,a4paper]{article} + +\usepackage{standalone} % para incluir arquivos diagramado com standalone + +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage[brazil]{babel} + +\usepackage{amsmath} +\usepackage{amssymb} + +% pacotes usados pelo arquivo a ser incluido +\usepackage{tikz} +\usetikzlibrary{patterns} + +\begin{document} +Para incluir o arquivo diagramado com classe standalone, basta usar o \verb+\input+. + +\begin{figure}[hbp!] +\center +\input{ex-e-standalone-fig} +\caption{Inclusão de figuras} +\end{figure} + +\end{document} +\end{lstlisting} +\end{singlespacing} +% +%\begin{framed} +\begin{ltxlistingout} +Para incluir o arquivo diagramado com classe standalone, basta usar o \verb+\input+. +\begin{center} +\begin{tikzpicture} +\draw[pattern=north east lines] (-1,-1) rectangle(1,1); +\draw[fill=white] (0,0) circle(1); +\end{tikzpicture} + +{Figura 1: Inclusão de figuras} +\end{center} +\end{ltxlistingout} +%\end{framed} + +\section{Dividindo o documento em vários arquivos} +Para dividir o documento em vários arquivos, poderá usar o \verb+\include+, mas ele não é eficiente, pois os pedaços de documentos não podem ser compilados separadamente. +O pacote \texttt{subfiles}\index{subfiles} resolve este problema. +o uso de \texttt{subfiles} é similar ao do \texttt{standalone}, mas em vez de ignorar o \texttt{preamble} dos arquivos inclusos, os arquivos a serem incluídos usam o \texttt{preamble} do documento principal. +Assim, como o \texttt{standalone}, o documento principal deve conter todos os pacotes e definições que seus partes vão precisar, mas não há necessidade de colocar tais pacotes e definições no arquivo de partes. +A estrutura do documento principal com \texttt{subfiles} é algo como do Exemplo~\ref{ex:e:subfiles:principal}. +\begin{singlespacing} +\begin{lstlisting}[caption={ex-e-subfiles-principal.tex},label=ex:e:subfiles:principal] +\documentclass[12pt,a4paper,oneside]{book} +\usepackage{subfiles} % para incluir partes do documento + +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage[brazil]{babel} +\usepackage{amssymb,amsmath} +\usepackage{tikz} +\usetikzlibrary{patterns} +... +\begin{document} +... +\subfiles{ex-e-subfiles-prefacio} +\subfiles{ex-e-subfiles-capitulo1} +\subfiles{ex-e-subfiles-capitulo2} +\subfiles{ex-e-subfiles-capitulo3} +... +\end{document} +\end{lstlisting} +\end{singlespacing} +Exceto pelo uso do pacote \texttt{subfiles} e o comando \verb+\subfiles+\index{subfiles@\verb+\subfiles+} em vez do \verb+\include+, tem nada de especial. +Cada pedaço do documento tem a forma como do Exemplo~\ref{ex:e:subfiles:capitulo1}. +\begin{singlespacing} +\begin{lstlisting}[caption={ex-e-subfiles-capitulo1.tex},label=ex:e:subfiles:capitulo1] +\documentclass[doc-principal]{subfiles} +\begin{document} +... +\end{document} +\end{lstlisting} +\end{singlespacing} + +Note que a classe de documento é \texttt{subfiles}\index{subfiles} e sua opção é nome do arquivo principal. +Como o \texttt{preamble} será obtido do documento principal, não há \texttt{preambles} e já começa a escrever o documento no ambiente \texttt{document} normalmente. + +Assim, podemos compilar partes do documento, assim como todo documento. + +%standalone e subfiles + +% \clearpage +\clearpage\thispagestyle{empty}\cleardoublepage +\backmatter +% Referências Bibliográficas +\phantomsection +\bibliography{latex-via-exemplos} +\bibliographystyle{amsalpha} + +\clearpage\thispagestyle{empty}\cleardoublepage +\phantomsection +\begin{singlespacing} +\printindex +\end{singlespacing} + +%\chapter{Todo} +%Já feito +%\begin{itemize} +%\item Estruturação de texto antes da estruturação de documentos. Nele, incluir o minipage, já usando o \verb+\linewidth+ como o \verb+0.5\linewidth+. OK. +% +%\item A seleção de fontes (família, peso, forma e tamanho) ficar depois de ver estrutura de documentos, estruturação de textos e fórmulas matemáticas usando AMS. Talvez, até mesmo depois das figuras. OK (ver se fica antes ou depois das figuras). OK +%Neste caso, algumas seleções de fontes matemáticos (\verb+\mathrm+, \verb+\mathbb+ e \verb+\mathcal+) e o \verb+\emph+ para textos (talvés \verb+\textbf+ também) devem ser tratados antes de entrar no capítulo de configuração de fontes. OK. +% +%\item Medidas e espaçamentos também ficar para depois, como do item anterior. Algumas medidas como o \verb+\linewidth+ poderá ser apresentado junto ao \texttt{minipage} na estruturação de textos. OK. +% +% +%\item short name for caption. Deve ser junto aos elementos flutuantes. OK +%\item indentfirst? OK +%\item multicols? OK + +%\item comandos frágeis. +%\item Onde tratar de babel +%\item Onde tratar de contadores? +%\item hifenização? +%\item onde tratar de \verb+\makeatletter+/\verb+\makeatother+? +% +%\item versão ``*''? Comentar que tem o pacote ifthen tambem? +% +%\item pacote \texttt{color}? Onde colocar? +%\item alguns pacotes de fontes do base e required? +%\item integrais múltiplas OK +%\end{itemize} + +%Todo: +% +%\begin{itemize} +%\item Onde tratar de poster? Deixar junto com fancybox e lpsum. +% +%\end{itemize} +% +%Da parte adicional. Decidir qual serão vistos e como agrupar. + +%\begin{itemize} +%\item lmodern e mais alguns pacotes de fontes tais como newtxtext/newtxmath, etc. + +% \item dsfont, +%\item hyperref, geometry, fancyhdr, fancybox, setspace +%\item titlesec, float, wrapfig (ou floatflt), xcolor, subfigure +%\item caption e hyphenat +%\item tocbibind +%\item beamer, pgf/tikz, + +%\item natbib, biblatex + +%\item xelatex/lualatex, iffont. +% \item O editor LyX +% \item eso-pic, framed + + +% \item Exemplo do pacote caption e listings e showexpl +%\item arquivos de estilo. + +%\item \verb+\section{\texorpdfstring{$E=mc^2$}{E = mc ** 2}}+ para bookmark do PDF (hyperref)? Uso do comando \verb+\url{}+ no arquivo de BibTeX. + +%\item diferenca de amssymb/amsmath com unicode-math: +%mathbb, mathcal, \verb+\int\limits+ +%item \verb+\newfontfamily+ do fontspec + +% \end{itemize} + + +% Referencias: https://pt.wikipedia.org/wiki/Ajuda:Guia_de_edi%C3%A7%C3%A3o/F%C3%B3rmulas_TeX +% Tem breve descricao de como editar formulas em LaTeX de forma adequada (elemento matematico por elemento matematico, apesar de pequenos inadequacoes: underbrace/overbrace, overset em vez do substack no indice da somatoria, omissao do ambiente cases, mbox em vez de mathrm) +% +% https://en.wikibooks.org/wiki/LaTeX/ +% Livro eletronico em ingles. +% \printindex + +\end{document} diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index 8f68fddd5d1..f53a437b603 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -367,7 +367,7 @@ my @TLP_working = qw( latex-git-log latex-graphics-companion latex-make latex-mr latex-notes-zh-cn latex-papersize latex-referenz latex-refsheet latex-tabellen - latex-tds latex-veryshortguide latex-web-companion + latex-tds latex-veryshortguide latex-via-exemplos latex-web-companion latex2e-help-texinfo latex2e-help-texinfo-fr latex2e-help-texinfo-spanish latex2man latex2nemeth latex4wp latex4wp-it latexbangla latexbug diff --git a/Master/tlpkg/tlpsrc/collection-langportuguese.tlpsrc b/Master/tlpkg/tlpsrc/collection-langportuguese.tlpsrc index a4e973cf037..e60c3b68285 100644 --- a/Master/tlpkg/tlpsrc/collection-langportuguese.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-langportuguese.tlpsrc @@ -9,6 +9,7 @@ depend beamer-tut-pt depend cursolatex depend feupphdteses depend hyphen-portuguese +depend latex-via-exemplos depend latexcheat-ptbr depend lshort-portuguese depend ordinalpt diff --git a/Master/tlpkg/tlpsrc/latex-via-exemplos.tlpsrc b/Master/tlpkg/tlpsrc/latex-via-exemplos.tlpsrc new file mode 100644 index 00000000000..e69de29bb2d -- cgit v1.2.3