% 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 \ifx \IfFontExistsTF\undefined \PackageError{\jobname}{fontspec antigo}{Atualize para versão mais nova ou use XeLaTeX} \fi % \usepackage{etoolbox} % iffont ja carregou \let\iffontexists\IfFontExistsTF \makeatletter \renewcommand{\@iffont@checkfont}[1]{ \IfFontExistsTF{#1}{ \nottoggle{@iffont@fontfound}{% \renewcommand{\@iffont@firstfont}{#1} \toggletrue{@iffont@fontfound} }{} }{\stepcounter{@iffont@fontsnotfound} } } \makeatother \fi \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. \usepackage[shortlabels,inline]{enumitem} % para controle de listas e listas compactas \usepackage{tabto} % para tabular itens da lista compacta. % 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 2017 of latin Modern (Cambria Math of Microsoft has this symbol). % Need to tested on newer version of Latin Modern \ifx\circlearrowleft\undefined % From AMS (amssymb) \DeclareSymbolFont{AMSa}{U}{msa}{m}{n} % from amsfonts \DeclareMathSymbol{\circlearrowright}{\mathrel}{AMSa}{"08} \DeclareMathSymbol{\circlearrowleft}{\mathrel}{AMSa}{"09} \fi % \square do amssymb não tem no unicode-math % providenciando como \openbox do amsthm %\ifx\square\undefined % \let\square\openbox %\fi \providecommand{\square}{\openbox} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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. % Primiera atualizacao (0.5.1): \date{Versão 0.5.1, maio 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 \\ \url{https://ctan.org/pkg/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 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 2007, o Xe\TeX que suporta o uso de fontes do sistema implementado inicialmente no MacOSX foi portado para linux e windows. 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{}, além de poder usar as fontes do sistema como o Xe\TeX, também pode 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 com o código fonte. Para quem quer a funcionalidade mais próxima dos aplicativos de escritórios que permite visualizar como vai ficar enquanto escreve e quer elaborar o documento usando botões e menus em vez de digitar comandos, poderá optar pelo \LyX{}\index{LyX} (\url{https://www.lyx.org/}) que também é livre e suporta várias plataformas. Para evitar erros de escrita, é recomendável que ative o corretor ortográfico com idioma desejado, o que depende de cada editor. Para compilar, deverá instalar alguma distribuição de \TeX{}. Em geral, o mais recomendado é o \texttt{TeXLive}\index{TeXLive} para \texttt{Linux}, \texttt{MacTeX}\index{MacTeX} para \texttt{Mac OSX} e \texttt{MikTeX}\index{MikTeX} para \texttt{Windows}, todos são livres. Evite usar o espaço no nome de arquivos para \LaTeX, pois o sincronismo do código fonte com o 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 de coberta dos caracteres é maior, não limitando somente a faixa de \texttt{T1}. O terceiro e último pacote deste exemplo é o \texttt{babel} com a opção \texttt{brazil}. O pacote \texttt{babel}\index{babel} seleciona a regra de hifenização e nomes dos elementos (como figura, capítulo, etc) para idioma especificada. A opção \texttt{brazil} ou \texttt{brazilian} escolhe o português brasileiro (não confundir com a opção \texttt{portugese} que escolherá português de Portugal). Depois encontra o \verb+\begin{document}+. O comando \verb+\begin+\index{begin@\verb+\begin+} inicia um ambiente. Um ambiente\index{ambiente} é uma configuração que será aplicado nos trechos entre \verb+\begin{}+ 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, deve corrigir os erros e compilar de novo, até sumir com todos os erros. Quando compila o documento, o \texttt{TeXMaker} posicionará na página do 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 \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 especiais. 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 também que o acento agudo no modo \TeX{} é produzido por apóstrofos e não pelo acento agudo. Apóstrofos\index{apóstrofos} é aberto por um acento agudo e fechado pelo apóstrofos. Aspas\index{aspas} é aberto pelos dois acentos agudos e fechado pelos dois apóstrofos (fiquem atentos de que fechamento de aspas é dois apóstrofos e não é aspas). No \LaTeX, quando encontra ``\%''\index{\%}, o restante desta linha será considerado como comentário\index{comentário} e é ignorado completamente. Comentário é importante para inserir observações sobre o código, ou desativar um trecho do código. Em geral, quem quer remover um trecho do código de \LaTeX{} no documento, simplesmente comenta o trecho, pois se algum dia quiser ativar, é só remover o ``\%'' do comentário. Para comentar/descomentar um trecho maior no \texttt{TeXMaker}, selecione o trecho e use o \texttt{Editar->Comentar} e \texttt{Editar->Descomentar}. Quando editar um documento, existem palavras que devem aparecer grudados (não pode ficar primeira parte no final de linha e outra no começo da linha) como no caso de enumeração de páginas, exemplos, teoremas, etc. Neste caso, usa-se o til (\verb+~+\index{\~{}@\verb+~+}) em vez do espaço\index{espaço!não quebrável}. Por exemplo, no caso de \verb+página~1+, não acontece de 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 lembre-se que no comando de \LaTeX, maiúsculo e minusculo são distinguidas. Portanto, \verb+Latex+ ou \verb+\latex+ resultarão em erros em vez de produzir logotipo de \LaTeX. \clearpage\thispagestyle{empty}\cleardoublepage \chapter{Introdução às Fórmulas Matemáticas} Neste capítulo, veremos um pouco sobre as fórmulas matemáticas. \section{Fórmula \texttt{textstyle} e \texttt{displaystyle}} Uma fórmula matemática (ou modo matemático) \texttt{textstyle}\index{textstyle} ou \texttt{inlinestyle}\index{inlinestyle} é uma fórmula no meio do texto. Por exemplo, denotaremos uma sequência por $\{x_n\}$ e seu limite por $\lim_n\to\infty x_n$ é modo \texttt{textstyle}, pois fórmulas estão no meio do texto. Agora as fórmulas matemáticas que ocupam linha separada de texto como em \[ x=\frac{-b\pm\sqrt{b^2-4ac}}{2a} \] é denominado de fórmula matemática 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}. E recomendado que delimite com \textbackslash['' e ``\textbackslash]'', pois delimitar com ``\$\$'' (dois dólares) dificultará a depuração (achar erros). %\begin{singlespacing} %\begin{LTXexample}[pos=b,caption={ex02-01.tex},label=ex:02-01] \begin{ltxlisting}[caption={ex03-formulas.tex},label=ex03:formulas] Solução da equação $ax^2+bx+x=0$ é dado pela fórmula \[ x=\frac{-b\pm\sqrt{b^2-4ac}}{2a} \] Elemento da matriz $A$ costuma ser denotado por $a_{ij}$ \end{ltxlisting} %\end{LTXexample} %\end{singlespacing} No modo matemático, ``\verb+^+''\index{\^{}@\verb+^+} é usado para indicar a potência\index{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 um botão no painel lateral esquerdo que permitem ativar tais painéis, organizados em grupos. As letras gregas\index{letra!grega} no \LaTeX{} são produzidas pelo comando com nome em inglês. Se nome começar em maiúsculo, será letra grega maiúscula. Note que, quando os parâmetros de um comando for mais de um (mais de uma letra, por exemplo), deverá colocar entre chaves, como foram feitos para \verb+\frac+ e \verb+sqrt+. Isto vale também para expoentes e índices, como foi feito no elemento da matriz (com índices de duas letras). O comando \verb+\sqrt+\index{sqrt@\verb+\sqrt+} aceita o parâmetro opcional (delimitado pelos colchetes) para poder produzir raiz $n$-ésima. O \verb+$\sqrt[n]{x}$+ produz $\sqrt[n]{x}$. O Exemplo~\ref{ex03:simbolos} ilustra algumas letras gregas e símbolos. Note que uma tabela completa de símbolos do \LaTeX{} 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 guardada e usada no outro lugar, recurso conhecido como referência cruzada\index{referência cruzada}. Para tanto, coloca-se o comando \verb+\label{nome do rótulo}+\index{label@\verb+\label+} que produz um rótulo\index{rótulo} que armazena a enumeração e \verb+\ref{nome do rótulo}+\index{ref@\verb+\ref+} aonde quer colocar esta enumeração. O Exeplo~\ref{ex03:ref} ilustra o uso da referência cruzada. %\begin{singlespacing} %% truque do https://www.latex4technics.com/?note=30gq %% para referencia funcionar no LTXexample %\let\orilabel\label %\setcounter{lstorichapter}{\value{chapter}} %\begin{LTXexample}[pos=b,caption={ex02-02.tex},label=ex:02-02,preset={\let\label\orilabel,\setcounter{chapter}{1}}] \begin{ltxlisting}[caption={ex03-ref.tex},label=ex03:ref] \begin{equation}\label{eq:pitagoras} a^2=b^2+c^2 \end{equation} Pela Equação~\ref{eq:pitagoras} da página~\pageref{eq:pitagoras}\ldots \end{ltxlisting} %\end{LTXexample} %\end{singlespacing} %\setcounter{chapter}{\value{lstorichapter}} Como já foi mencionado, o ambiente \texttt{equation} produz enumeração automática na equação. Assim, poderá criar um rótulo para referenciar o número desta equação com o comando \verb+\label+. O nome do rótulo escolhido para esta equação foi \texttt{eq:pitagoras}. Tome cuidado para não usar espaços, letras acentuadas ou símbolos especiais, o que dificulta a depuração ou causa erros. No Exemplo~\ref{ex03:ref}, ``:'' foi usado em vez do espaço para separar palavras. Note que foi colocado o prefixo ``eq'' para rótulo da equação. Como pode ter teoremas, equações, figuras, etc que podem sugerir o mesmo nome, é costume usar algum prefixo para cada categoria, o que facilitará a lembrar o elemento que é associado ao rótulo. Para referenciar (usar o número) da equação, foi usado o comando \verb+\ref+ e para referenciar a página, foi usado o comando \verb+\pageref+\index{pageref@\verb+\pageref+}. Note que os editores especializados para \LaTeX, costuma ter recursos de listar os rótulos existentes para referências, o que facilita a editoração e prevenir erros. Também note o uso de ``\verb+~+''\index{\~{}@\verb+~+} em vez do espaço para usar referências, o que evita que nome ``Equação'' fique no final de uma linha e numeração no começo da próxima linha. Quando usa a referência cruzada, as enumerações sempre estarão coerentes e se usar o pacote \texttt{hyperref}, terão link automáticos no documento PDF. Uma observação importante é o fato do \LaTeX{} utilizar arquivo auxiliar para armazenar rótulos. Assim, quando usa as referências cruzadas, precisam compilar o documento duas vezes para ter a enumeração ou link correta. \clearpage\thispagestyle{empty}\cleardoublepage \chapter{Estrutura 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 os lados dentro do ambiente com alinhamento a esquerda, direita ou centralizada, costuma colocar dentro do ambiente \texttt{minipage} que veremos na Seção~\ref{sec:minipage}. Não é o alinhamento, mas para incluir linhas em branco\index{linhas em branco}, deverá colocar ``\verb+\+'' intercalado com linhas em branco. Para indicar uma nova linha\index{nova linha} (finalizar uma linha sem esperar atingir final de linha), coloca se ``\verb+\\+''\index{\textbackslash\textbackslash} ou \verb+\newline+\index{newline@\verb+\newline+}. Para inserir quebra de linhas\index{quebra de linha}, mas que justifique, deverá usar o \verb+\linebreak+\index{linebreak@\verb+\linebreak+}, o que é ilustrado no Exemplo~\ref{ex04:nova:linha} %\begin{singlespacing} \begin{ltxlisting}[caption={ex04-nova-linha.tex},label=ex04:nova:linha] Esta é a primeira linha \\ e esta e a segunda linha \ Esta é a primeira linha \linebreak e esta é a segunda linha. \end{ltxlisting} %\end{singlespacing} Note o uso de ``\verb+\+''\index{\textbackslash@\verb+\+} para inserir linha em branco. \section{Notas de rodapé e ênfase de texto} Nota de rodapé\index{nota de rodapé} é colocado pelo comando \verb+\footnote{}+\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 o texto\index{enfase@{ênfase} de texto} dentro do contexto como os termos a ser definidos, usa-se o comando \verb+\emph{texto}+\index{emph@\verb+\emph+} ou o ambiente \texttt{em}\index{em}. Este comando (ou ambiente) alterna entre fontes romano reto e itálico para que o trecho seja enfatizado. %Outra ênfase comum as palavras é usar o negrito que faz destacar no meio do texto. O negrito é produzido pelo comando \verb+\textbf{texto}+ ou pelo ambiente \texttt{bfseries}. Note que os ambientes \texttt{em} tem a versão de comandos \verb+\em+\index{em@\verb+\em+} que pode ser usados dentro do outro ambiente (como os comandos de alinhamento). Caso não esteja dentro do ambiente, poderá delimitar simplesmente pelos chaves e colocar o comando no começo dele. Isto está ilustrado no Exemplo~\ref{ex04:enfase}. %\begin{singlespacing} % \begin{LTXexample}[pos=b,caption={ex03-01.tex},label=ex:03-01] \begin{ltxlisting}[caption={ex04-enfase.tex},label=ex04:enfase] \emph{Enfatizado} ou \begin{em}enfatizado\end{em} ou \begin{center} \em Centralizado e enfatizado. \end{center} ou {\em Enfatizado.} Texto normal. \end{ltxlisting} %\end{LTXexample} %\end{singlespacing} %Para as diversas necessidades, é possível controlar as fontes, o que será estudado no Capítulo~\ref{chap:fontes}. \section{Listas} O texto pode ter várias estruturas básicas, tais como listas, cotações, etc. Uma das mais utilizadas é listas. %Veremos alguns deles. %Vamos começar pelas listas. Existem três tipos básicos de listas\index{lista} que são especificadas pelos ambientes \texttt{enumerate}\index{enumerate} (lista enumerada\index{lista!enumerada}), \texttt{itemize}\index{itemize} (lista de itens\index{lista!itemizada}) e \texttt{description}\index{dscription} (lista de descrições\index{lista!descrição}). Dentro de cada ambiente, cada item\index{lista!item} é iniciado com o comando \verb+\item+\index{item@\verb+\item+}. O Exemplo~\ref{ex04:listas} ilustra algumas destas listas. %\begin{singlespacing} % \begin{LTXexample}[pos=b,caption={ex06-01.tex},label=ex:06-01] \begin{ltxlisting}[caption={ex04-listas.tex},label=ex04:listas] \begin{enumerate} \item Este é o primeiro item da lista enumerada. \item Agora, segundo item da lista enumerada \end{enumerate} \begin{itemize} \item Este é o primeiro item da lista de itens. \item Agora, segundo item da lista de itens. \end{itemize} \begin{itemize} \item Item com marcador padrão. \item [$\ast$] Item com marcador personalizado. \end{itemize} \begin{description} \item [enumerada] Cada item recebe uma enumeração. \item [itenizada] Em vez de enumeração, recebe um marcador. \item [descrição] Descrição das palavras. \end{description} \end{ltxlisting} %\end{singlespacing} As listas podem conter outras listas como itens\index{sub listas}. Veja Exemplo~\ref{ex04:sublistas}. %\begin{singlespacing} %\begin{LTXexample}[pos=b,caption={ex06-01.tex, parte b},label=ex:06-01:b] \begin{ltxlisting}[caption={ex04-sublistas.tex},label=ex04:sublistas] \begin{enumerate} \item Este é o primeiro item da lista enumerada. \item Segundo item é lista de itens. \begin{itemize} \item Este é o primeiro item da lista de itens. \item Agora, segundo item da lista de itens. \end{itemize} \item Este é o terceiro item da lista enumerada. \end{enumerate} \end{ltxlisting} %\end{LTXexample} %\end{singlespacing} Para trabalhar com listas enumeradas, é aconselhável carregar o pacote \texttt{enumerate}\index{enumerate} que permite controlar as enumerações\index{lista!enumerada!controle}. Para isso, acrescente o comando \verb+\usepackage{enumerate}+ no \texttt{preamble} do documento. No \texttt{enumerate}, passa-se um parâmetro opcional que seria o modelo de enumeração do primeiro item. Neste modelo, ``1'', ``i'', `` I'', ``a'' e ``A'' serão considerados contadores e eles são incrementados a cada item. Se aparecer estas letras que não sejam contadores, delimite pelos chaves. Veja o Exemplo~\ref{ex04:enumerate}. %\begin{singlespacing} % \begin{LTXexample}[pos=b,caption={ex06-01.tex, parte c},label=ex:06-01:c] \begin{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 especificado ou não no começo da tabela. No Exemplo~\ref{ex04:multicolumn} com o ambiente \texttt{array} (para ambiente matemático), foi usado o \texttt{multicolumn} para juntar duas primeiras colunas da primeira linha, centrando os dados e traçando linha vertical antes e depois da célula. %\begin{singlespacing} %\begin{LTXexample}[pos=b,caption={ex06-02.tex, parte b},label=ex:06-02:b] \begin{ltxlisting}[caption={ex04-multicolumn.tex},label=ex04:multicolumn] \[ \begin{array}{||l|c|r||} \hline \multicolumn{2}{||c|}{2} & 3 \\ \hline 2^3 & 3 & 4 \\ 3 & 4 & \frac{1+\sqrt{2}}{5} \\ \hline \end{array} \] \end{ltxlisting} %\end{LTXexample} %\end{singlespacing} Para traçar linhas horizontais apenas em algumas células, usa-se o comando \texttt{\textbackslash cline\{i-j\}}\index{cline@\verb+\cline+} onde ``\texttt{i}'' e ``\texttt{j}'' são colunas iniciais e finais onde a linha é traçada. Veja o Exemplo~\ref{ex04:cline}. %\begin{singlespacing} % \begin{LTXexample}[pos=b,caption={ex06-02.tex, parte c},label=ex:06-02:c] \begin{ltxlisting}[caption={ex04-cline.tex},label=ex04:cline] \begin{tabular}{||l|lr||} \hline \textbf{Produto} & \multicolumn{2}{|c||}{\textbf{Preços}} \\\hline cenouras & R\$1.00 & (por Kg) \\ \cline{2-3} & R\$0.20 & (por unidade) \\ \hline cogumelos & R\$4.00 & \multicolumn{1}{|r||}{(por vidro)} \\ \cline{1-1} \cline{3-3} pêssego & & \multicolumn{1}{|r||}{(por Kg)} \\ \hline \end{tabular} \end{ltxlisting} %\end{LTXexample} %\end{singlespacing} No Exemplo~\ref{ex04:cline}, o comando \texttt{multicolumn} foi usado somente para formatar a coluna (colocar linha vertical) e não para juntar células. 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 a especificação do número de casas decimais for negativo, qualquer número de casas decimais é aceito sem ser truncados (alinhando nos pontos decimais). Como especificar três parâmetros toda vez que precise alinhar os pontos decimais é trabalhoso, é sugerido que defina um especificador no \texttt{preamble}, usando o comando \texttt{newcolumntype}\index{newcolumntype@\verb+newcolumntype+} como abaixo: \begin{singlespacing} \begin{lstlisting}[language={[LaTeX]TeX}] \usepackage{dcolumn} \newcolumntype{d}[1]{D{.}{\cdot}{#1}} \newcolumntype{.}{D{.}{.}{-1}} \newcolumntype{,}{D{,}{,}{2}} \end{lstlisting} \end{singlespacing} Ele define especificador de colunas ``d{}'' 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 anteriores para que ``.'' seja convertida para ``,'' ou vice versa. Veja o Exemplo~\ref{ex04:dcolumn}. %\begin{singlespacing} %\begin{LTXexample}[pos=b,caption={ex06-02.tex, parte d},label=ex:06-02:d] \begin{ltxlisting}[caption={ex04-dcolumn.tex},label=ex04:dcolumn] \documentclass[12pt,a4paper]{article} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{amsmath,amssymb} \usepackage{dcolumn} \newcolumntype{d}[1]{D{.}{\cdot}{#1}} \newcolumntype{.}{D{.}{.}{-1}} \newcolumntype{,}{D{,}{,}{2}} \begin{document} \begin{tabular}{|d{-1}|d{2}|.|,|} \hline 1.2 & 1.2 &1.2 &1,2 \\ 1.23 & 1.23 &12.5 &300,2 \\ 1121.2& 1121.2&861.20 &674,29 \\ 184 & 184 &10 &69 \\ .4 & .4 & &,4 \\ & &.4 & \\ \hline \end{tabular} \end{document} \end{ltxlisting} %\end{LTXexample} %\end{singlespacing} Para ter as colunas igualadas automaticamente, usamos o pacote \texttt{tabularx}\index{tabularx} que define o ambiente \texttt{tabularx} onde primeiro argumento é largura da tabela e segundo é especificação de colunas, mas apresenta um especificador de coluna especial ``X''. Todas as colunas especificadas por ``X'' terá mesma largura (largura destas colunas depende da largura da tabela). Veja o Exemplo~\ref{ex04:tabularx}. %\begin{singlespacing} % \begin{LTXexample}[pos=b,caption={ex06-02.tex, parte e},label=ex:06-02:e] \begin{ltxlisting}[caption={ex04-tabularx.tex},label=ex04:tabularx] \documentclass[12pt,a4paper]{article} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{amsmath,amssymb} \usepackage{tabularx} \begin{document} \begin{tabularx}{\linewidth}{|c|X|c|X|} \hline \multicolumn{2}{|c|}{\texttt{multicolumn} } & \scshape Terceira & \scshape Quarta \\ \hline primeira & a largura desta coluna depende da largura da tabela. & terceira & Quarta coluna funciona da forma similar a segunda e terá a mesma largura da segunda \\ \hline \end{tabularx} \end{document} \end{ltxlisting} %\end{LTXexample} %\end{singlespacing} No Exemplo~\ref{ex04:tabularx}, foi usado o comando \verb+\linewidth+\index{linewidth@\verb+\linewidth+} que é a medida da largura da linha atual. Este comando aparece frequentemente quando queremos ajustar largura de um elemento para largura da linha atual. Mais sobre medidas, veja a Seção~\ref{sec:medidas} 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 alinhados em diversos pontos, tal como no caso de algoritmos. O ambiente é especificado pelo \texttt{tabbing}\index{tabbing}. Para marcar a posição de tabulação, usa-se o comando \verb+\=+. Quando uma linha for usado somente para marcar posição, coloca-se o comando \verb+\kill+\index{kill@\verb+\kill+} no final dele, para que o mesmo não seja impresso. Para formatar conteúdos tabulados, é comum que queira tabular várias linhas sucessivas. O comando \verb"\+"\index{+@\verb'\+'} translada a margem esquerda por uma tabulação e \verb"\-"\index{-@\verb+\-+} retira uma tabulação da margem esquerda. Com isso, podemos diagramar textos tabulados como no caso do algoritmo do Exemplo~\ref{ex04:tabbing}. %\begin{singlespacing} %\begin{LTXexample}[pos=b,caption={ex06-03.tex},label=ex:06-03] \begin{ltxlisting}[caption={ex04-tabbing.tex},label=ex04:tabbing] \begin{tabbing} mm\=mm\=mm\=mm\=mm\= \kill % apenas para marcar tabulação \{ Solução real da equação $ax^2+bx+c=0$ pela fórmula de Baskara \} \\ $\Delta = b^2-4ac$ \\ se d < 0 então \+ \\ % aplicar uma tabulação em todas linhas de abaixo escreva ``não há solução real'' \\ pare \- \\ % retirar uma tabulação de todas linhas de abaixo senão \+ \\ $x_1 = \frac{-b-\sqrt{\Delta}}{2a}$ \\ $x_2 = \frac{-b+\sqrt{\Delta}}{2a}$ \- \\ fim se \end{tabbing} \end{ltxlisting} %\end{LTXexample} %\end{singlespacing} Se por algum motivo, pretende usar a acentuação no modo \TeX{} dentro do ambiente \texttt{tabbing}, note que existe três acentos no modo \TeX{} que não podem ser usados dentro do \texttt{tabbing} que são \verb+\'+, \verb+\`+ e \verb"\=". Estes comandos são reservados para controle de tabulação. Assim, estes três comandos devem ser substituídos pelos comandos \verb+\a'+\index{a'@\verb+\a'+}, \verb+\a`+\index{a`@\verb+\a`+} e \verb"\a="\index{a=@\verb+\a=+} respectivamente (eles só funcionam dentro do \texttt{tabbing}). Existem vários outros comandos que podem ser explorados no ambiente \texttt{tabbing}, mas não vamos entrar em detalhes. Uma observação é que no caso de algoritmos ou código fonte de programas, existem pacotes específicos que implementam ambientes bem mais fáceis e versáteis do que \texttt{tabbing}. % citados, \texttt{quotation}, \texttt{verse} e \texttt{verbatim} \section{Textos de citações, versos e \texttt{verbatim}} O ambiente \texttt{quote}\index{quote} é usado para escrever citações\index{citações} (trecho de outra fonte), exemplos e frases importantes. O Exemplo~\ref{ex04:quote} foi extraído do ``The Not (So) Short Introduction to \LaTeX2e'' \cite{book:oeticker:2018}. %\begin{singlespacing} %\begin{LTXexample}[pos=b,caption={ex06-04.tex},label=ex:06-04] \begin{ltxlisting}[caption={ex04-quote.tex},label=ex04:quote] ``Uma regra da tipografia sobre o comprimento de uma linha é: \begin{quote} Em média, nenhuma linha deve ser maior que 66 caracteres. \end{quote} Este é o motivo pelo qual as páginas do \LaTeX{} possuem as bordas tão grandes e também o motivo pelo qual os jornais usam impressão em colunas''. \end{ltxlisting} %\end{LTXexample} %\end{singlespacing} No ambiente \texttt{quote} usado para colocar citações (trecho tirado da outra fonte), o texto inteiro ficará com margens maiores a esquerda e a direita, o que tornaria visível quando colocar texto maior. Quando o texto da citação é formado por vários parágrafos, pode querer que os parágrafos sejam indentados (tabulados para a direita). Neste caso, use o ambiente \texttt{quotation}\index{quotation} em vez de \texttt{quote}. O Exemplo~\ref{ex04:quotation} também usa o trecho do \cite{book:oeticker:2018} que explica os ambientes similares a \texttt{quote}, ficou com parágrafo indentado: %\begin{singlespacing} %\begin{LTXexample}[pos=b,caption={ex06-04.tex, parte b},label=ex:06-04:b] \begin{ltxlisting}[caption={ex04-quotation.tex},label=ex04:quotation] Veja que a cópia do trecho do ``The Not (So) Short Introduction to \LaTeX2e'' que explica os ambientes similares a \texttt{quote}, ficou com parágrafo indentado: \begin{quotation} ``Existem dois ambientes similares: os ambientes quotation e verse. Como ambiente \texttt{quotation} faz a indentação dos parágrafos, ele é usado para citações longas que se estendem por vários parágrafos. O ambiente \texttt{verse} é usado em poemas onde as quebras de linhas são importantes. As linhas são separadas por \verb+\\+ e por uma linha em branco no fim de cada verso''. \end{quotation} \end{ltxlisting} %\end{LTXexample} %\end{singlespacing} No caso de versos\index{verso}, a linha que for quebrado pela falta de espaços, mas que constitui a mesma linha de cima, deve estar tabulado para direita. O ambiente \texttt{verse}\index{verse} encarrega deste serviço. O Exemplo~\ref{ex04:verse} é um exemplo do ``Humpty Dumpty'' do \cite{book:oeticker:2018}, colocado na caixa com largura insuficiente. Para criar caixas mais estreitas, foi usado o ambiente \texttt{minipage} que será tratado na Seção~\ref{sec:minipage} do Capítulo~\ref{chap:estrutura:texto}. %\begin{singlespacing} %\begin{LTXexample}[pos=b,caption={ex06-04.tex, parte c},label=ex:06-04:c] \begin{ltxlisting}[caption={ex04-verse},label=ex04:verse] \begin{flushleft} \begin{minipage}{0.5\linewidth} \begin{verse} Humpty Dumpty sat on a wall:\\ Humpty Dumpty had a great fall.\\ All the King's horses and all the King's men\\ Couldn't put Humpty together again. \end{verse} \end{minipage} \end{flushleft} \end{ltxlisting} %\end{LTXexample} %\end{singlespacing} Para inserir o código fonte de programas\index{código fonte!programma} ou similar, usa-se o ambiente \texttt{verbatim}\index{verbatimm} que coloca o texto de jeito que está (cópia \texttt{verbatim}). Este ambiente possui também a versão ``*'' \texttt{verbatim*}\index{verbatim*}. Sem o ``*'', coloca o espaço como espaço e com o ``*'', coloca o caractere ``\verb*+ +'' no lugar de espaço. Veja a diferença entre o código colocado pelo \texttt{verbatim} e \texttt{verbatim*} do Exemplo~\ref{ex04:verbatim}. %\begin{singlespacing} %\begin{LTXexample}[pos=b,caption={ex06-04.tex, parte d},label=ex:06-04:d] \begin{ltxlisting}[caption={ex04-verbatim.tex},label=ex04:verbatim] \begin{verbatim} \begin{quote} texto citado, texto importante ou exemplos. \end{quote} \end{verbatim} \begin{verbatim*} \begin{quote} texto citado, texto importante ou exemplos. \end{quote} \end{verbatim*} \end{ltxlisting} %\end{LTXexample} %\end{singlespacing} O ambiente \texttt{verbatim} é usado para colocar conteúdos que devem ser lidos letra por letra, como no cado do código fonte de programas ou trecho de documentos muito importantes. Para nome das variáveis do programa, nome de arquivos, etc que são curtos, mas também precisam ser lidos letra por letra, existe a versão comando que é \verb+\verb+\index{verb@\verb+\verb+}. No \verb+\verb+, o primeiro caractere é o delimitador do argumento que deve ser usado também para indicar o final do argumento. Este delimitador pode ser escolhido (só não pode ser ``*''), mas fique atento que o final do argumento deve usar mesmo caractere. A versão com ``*''\index{verb*@\verb+\verb*+} exibe o espaço como``\verb+ +''. Veja o Exemplo~\ref{ex04:verb}. %\begin{singlespacing} % \begin{LTXexample}[pos=b,caption={ex06-04.tex, parte e},label=ex:06-04:e] \begin{ltxlisting}[caption={ex04-verb.tex},label=ex04:verb] O comando \verb+\%+ produz ``\%''. Nome de arquivos com espaço tal como \verb*|meu arquivo.tex| não é recomendado para \LaTeX, pois dificulta a sincronização de PDF com o código fonte. Use ``\verb+-+'' no lugar de espaço, como em \verb*|meu-arquivo.tex|. \end{ltxlisting} %\end{LTXexample} %\end{singlespacing} Para textos longos no ambiente \texttt{verbatim} deve carregar o pacote \texttt{verbatim}\index{verbatim} no ``preamble''. Este pacote efetua algumas melhorias no ambiente \texttt{verbatim} e também implementa o comando \verb|\ver­batiminput|\index{verbatiminput@\verb+\verbatiminput+} que insere o arquivo externo diretamente no ambiente \texttt{verbatim}. Note que, para inserir trecho dos códigos fontes de programas, existem pacotes apropriados que é mais prático do que usar o ambiente \texttt{verbatim}. % \texttt{minipage} \section{Caixa \texttt{minipage}}\label{sec:minipage} O ambiente \texttt{minipage}\index{minipage} cria uma ``caixa'' que não é exatamente uma estruturação de textos, mas é usado frequentemente quando não encontra ambiente pronto para estruturação desejada. Por exemplo, podemos colocar um bloco de texto justificado no lado direito da página, como no Exemplo~\ref{ex04:minipage}. %\begin{singlespacing} %\begin{LTXexample}[pos=b,caption={ex06-04.tex, parte f},label=ex:06-04:f] \begin{ltxlisting}[caption={ex04-minipage.tex},label=ex04:minipage] \begin{flushright} \begin{minipage}{0.5\linewidth} Este texto ficará justificado, mas como fica dentro de \texttt{minipage}, podemos colocar no lado direito. Para tanto, basta colocar \texttt{minipage} dentro do \texttt{flushright}. Claro que podemos colocar equações, figuras e outros elementos sem problemas. Por exemplo, o Teorema de Pitágoras foi posto abaixo: \[ a^2=b^2+c^2 \] \end{minipage} \end{flushright} \end{ltxlisting} %\end{LTXexample} %\end{singlespacing} O argumento obrigatório para o ambiente \texttt{minipage} é a largura da ``caixa''. No Exemplo~\ref{ex04:minipage}, foi usado \verb+0.5\linewidth+ que é metade da largura da linha. Este ambiente é importante para colocar um parágrafo de texto dentro dos comandos que não aceitam os parágrafos. Por exemplo, \verb+\fbox{}+\index{fbox@\verb+\fbox+} coloca moldura no elemento, mas não aceita o parágrafo de texto. Então, como colocar moldura no texto com várias linhas, ou nas figuras? É simples: colocar tudo no \texttt{minipage} e colocar dentro do \texttt{fbox}, como no Exemplo~\ref{ex04:minipage:fbox}. %\let\orifootnote\footnote %\begin{singlespacing} %\begin{LTXexample}[pos=b,caption={ex06-04.tex, parte g},label=ex:06-04:g,preset=\let\footnote\orifootnote] \begin{ltxlisting}[caption={ex04-minipage-fbox.tex},label=ex04:minipage:fbox,preset={\renewcommand{\thempfootnote}{\alph{mpfootnote}}}] \fbox{ \begin{minipage}{0.75\linewidth} % 3/4 da largura de linha Usando o \texttt{minipage}, podemos colocar moldura no texto com parágrafo como este. O \texttt{fbox} não acusa erros por ter parágrafo, pois o que está dentro de \texttt{minipage} é apenas um ``objeto''. Este truque funciona também para outros comandos que impede de colocar parágrafos, mudar linhas, etc. Note que as notas de rodapé\footnote{rodapé é colocado pelo comando \texttt{\textbackslash footnote\{texto\} } } colocado dentro do minipage ficará na parte de baixo do \texttt{minipage} e não da página. O padrão dentro do \texttt{minipage} é enumerar eles como letra e não com números. \end{minipage} } % fbox \end{ltxlisting} %\end{LTXexample} %\end{singlespacing} Para elementos com poucas linhas de código, a versão comando \verb+\parbox+\index{parbox@\verb+\parbox+} é mais prático de ser usado. Mas \verb+\parbox+ é mais simplificado do que \texttt{minipage}, podendo perder alguns recursos. Por exemplo, alguns comandos e ambientes tais como \verb+\verb+ e \texttt{verbatim} não funcionam dentro do \verb+\parbox+. Assim, prefira usar o \texttt{minipage} sobre \verb+\parbox+. Veja o Exemplo~\ref{ex04:parbox}. %\begin{singlespacing} %\begin{LTXexample}[pos=b,caption={ex06-07.tex},label=ex:06-07] \begin{ltxlisting}[caption={ex04-parbox.tex},label=ex04:parbox] Texto normal \fbox{\parbox{3cm}{texto em várias linhas. \\ Com moldura.}} Texto continua. \end{ltxlisting} %\end{LTXexample} %\end{singlespacing} O primeiro parâmetro do \verb+\parbox+ é a largura, como no caso de \texttt{minipage}. Tanto no \texttt{minipage} como o \texttt{parbox}, \verb+\linewidth+\index{linewidth@\verb+\linewidth+} dentro dele é a largura da caixa passada como parâmetro. %linewidth: \the\linewidth % %\parbox{0.5\linewidth}{linewidth: \the\linewidth} % %\begin{minipage}{0.5\linewidth} %linewidth: \the\linewidth %\end{minipage} \section{Colunas múltiplas de texto} Dependendo do documento, usa-se mais de uma coluna. Isto é o caso de alguns artigos que podem usar duas colunas, ou \texttt{poster} que costuma usar três colunas ou mais. Mesmo no documento de uma coluna, o índice remissivo costuma ficar em duas colunas. Apesar da maioria das classes de documentos tem implementado a opção de documento em duas colunas (opção \texttt{twocolumn}\index{twocolumn}) e comandos para alternar entre uma e duas colunas (comandos \verb+\onecolumn+\index{onecolumn@\verb+\onecolumn+} e \verb+\twocolumn+\index{twocolumn@\verb+\twocolumn+}), a forma mais prático é usar o pacote \texttt{multicol}\index{multicol} que implementa o ambiente \texttt{muticols}\index{multicols} que permite criar qualquer número de colunas. O padrão é não traçar linhas separando colunas, mas isto pode ser alterado, como no Exemplo~\ref{ex04:multicols}. Aqui foi usado o \verb+\setlength+ para alterar a medida da espessura de linha que separa as colunas. Medidas serão tratadas em Seção~\ref{sec:medidas} do Capítulo \ref{chap:medidas:contadores}. O Exemplo~\ref{ex04:multicols} ilustra o uso de múltiplas colunas. %\begin{singlespacing} %\begin{LTXexample}[pos=b,caption={ex10-02.tex},label=ex:10-02] \begin{ltxlisting}[caption={ex04-multicols.tex},label=ex04:multicols] \documentclass[a4paper,12pt]{article} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage[brazil]{babel} \usepackage{color} \usepackage{color} \usepackage{multicol} % permite usar multiplas linhas % espessura da linha que separa as colunas (0pt para desabilitar) \setlength{\columnseprule}{1pt} \begin{document} Este parágrafo está como uma única coluna, padrão para maioria das classes de documentos. \begin{multicols}{2} % inicia duas colunas Este parágrafo está em duas colunas. O ambiente \texttt{multicols} balanceia os conteúdos em colunas para que todas colunas tenham mesmo tamanho. Se preferir que passe para próxima coluna somente quando a coluna ficar cheia, use a versão ``*'' que não balanceia seus conteúdos. Se quer finalizar a coluna manualmente, poderá usar o \verb+\columnbreak+ que finaliza a coluna atual e passa para próxima coluna. \end{multicols} % finaliza o mode de duas colunas Agora está no modo de uma única coluna novamente. \end{document} \end{ltxlisting} %\end{LTXexample} %\end{singlespacing} %A cor da linha de divisão também pode ser configurada, o que não discutiremos aqui. %% cor da linha que separa as colunas %\def\columnseprulecolor{\color{blue}} % % %Tratar do uso do pacote \texttt{multicols} \clearpage\thispagestyle{empty}\cleardoublepage \chapter{Aprofundando nas Fórmulas Matemáticas} Neste capítulo, vamos aprofundar mais nas fórmulas matemáticas. Para suporte à matemática, os pacotes \texttt{amssymb}\index{amssymb} e \texttt{amsmath}\index{amsmath} são usados. Portanto, coloque o comando \verb+\usepackage{amssymb,amsmath}+ no \texttt{preamble} do documento. \section{Usando algumas fontes matemáticas} Na matemática, além dos símbolos especiais e letras gregas, também usam alfabetos romanos de formatos diferentes. Por exemplo, para o conjunto dos números, costuma usar ``negrito do quadro negro'' (por exemplo, letra de traço duplo do AMS). Tais fontes são selecionados pelos comandos apropriados. Aqui veremos alguns dos mais usados. O conjunto dos números como real, racional, etc, usam a letra maiúscula em ``negrito do quadro negro''. Para tanto, poderemos usar o comando \verb+\mathbb+\index{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 que no \texttt{argmin}, o $x$ será colocado embaixo e não como índice. Para que o que foi colocado como índice fique embaixo, usa-se o comando \verb+\mathop+\index{mathop@\verb+\mathop+}. Em geral, costuma definir comandos para nome das funções no \texttt{preamble} do documento para facilitar a digitação. A definição de comandos e ambientes serão estudados na Seção~\ref{sec:comandos} do Capítulo~\ref{chap:novo:comando}. Os comandos para nome das funções pré-definidas estão na Seção~\ref{sec:fonte:matematica} do Capítulo~\ref{chap:fontes}. %A seguir, alguns nome das funções pré-definidos. %\verb+\arccos+, \verb+\cos+, \verb+\csc+, \verb+\exp+, \verb+\ker+, \verb+\limsup+, \verb+\min+, \verb+\sinh+, \verb+\arcsin+, \verb+\cosh+, \verb+\deg+, \verb+\gcd+, \verb+\lg+, \verb+\ln+, \verb+\Pr+, \verb+\sup+, \verb+\arctan+, \verb+\cot+, \verb+\det+, \verb+\hom+, \verb+\lim+, \verb+\log+, \verb+\sec+, \verb+\tan+, \verb+\arg+, \verb+\coth+, \verb+\dim+, \verb+\inf+, \verb+\liminf+, \verb+\max+, \verb+\sin+, \verb+\tanh+. \section{Texto, função por partes e matrizes} Para inserir texto nas fórmulas, usa-se o comando \verb+\text+\index{text@\verb+\text+} do pacote \texttt{amsmath}. Evite de usar o \verb+\mbox+\index{mbox@\verb+\mbox+} para este propósito. Para ilustrar, vamos usar o ambiente \texttt{cases}\index{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 aumenta 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 alguns deles: 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 os 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, usa a 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{} permite produzir 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 um 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 de 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 o 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 com ``*'' 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 \renewcommand{\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 ser subdivididos 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/ou seções, o sumário\index{sumário} podem ser produzidos automaticamente pelo comando \verb+\tableofcontents+\index{tableofcontents@\verb+\tableofcontents+}. Para que o sumário apareça devidamente no documento final, precisa compilar o documento duas vezes, pois o \LaTeX{} usa o arquivo auxiliar para isso. 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 a 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 um 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 as 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+!headings} 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 paginados, 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 são apêndices\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ência bibliográfica. Note que o relatório é um documento e não é um 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 de finais dos capítulos, se existir, ficarão 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. Neste capítulo, trataremos de ilustrações e tabelas. \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} é especificada pelo ambiente \texttt{figure}\index{figure} e a tabela flutuante é especificada 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 o 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 estar 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 longo. Note que, o rótulo colocado pelo \verb+\label+\index{label@\verb+\label+} deverá ficar dentro ou depois de \verb+\caption+ 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 \verb+\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} O ambiente tabular é 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 possui o comando \verb+\caption*+\index{caption*@\verb+\caption*+} (a versão ``*'' do \verb+\caption+) 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} é similar a \texttt{jpg/jpeg}, mas 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, como no caso de acrescentar 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 o 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, para 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 deste ambiente. 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} (ou \verb+\parbox+). 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. Uma caixa é um bloco e além de ser manipulados no tamanho e posição, também pode ser usado mais de uma vez. Por exemplo, se quer colocar um certo elemento em mais de um lugar, ou colocar mais tarde, poderá criar uma caixa e armazenar dentro dele. Neste texto, não vamos entrar em detalhes sobre caixas, mas várias referências discutem sobre isso. \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 costuma estar como \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 estão coerentes entre si. Note que podem trocar para outras fontes, se desejar, mas estas três fontes devem estar em harmonia. A família das 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 ênfase 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 o comando \verb+\textsc+\index{textsc@\verb+\textsc+} e ambiente \texttt{scshape}\index{scshape} para \texttt{small caps}\index{fonte!samll caps}, também conhecido como versaletes\index{versaletes}, comandos \verb+\textit+\index{textit@\verb+\textit+} e ambiente \texttt{itshape}\index{itshape} para itálicos\index{fonte!itálico}. Também existe o comando \verb+\textsl+\index{textsl@\verb+\textsl+} e ambiente \texttt{slshape}\index{slshape} que requer cuidado no uso. O formato normal\index{fonte!formato normal} padrão é \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, não é possível produzir itálico negrito), além de ter de problemas de ajustes de espaçamentos (como a necessidade de correção de itálico). 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} A fonte com todos atributos padrão é especificado no \LaTeX{} pelo comando \verb+\textnormal+\index{textnormal@\verb+\textnormal+} ou pelo ambiente \texttt{normalfont}\index{normalfont}. \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 em 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 como 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ências bibliográficas\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+} cujo argumento obrigatório é uma chave e argumento opcional é o rótulo a ser impresso no item (se for omitido, será usado números). Depois segue os dados da referência bibliográfica 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 referências citadas no texto. Para usar o \BibTeX, prepara o arquivo de referência bibliográfica\index{arquivo!referência bibliográfica} 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!arrobastring@{\arrobasymbforindex string}} permite definir abreviaturas. No começo do arquivo, foi definudo as abreviaturas \texttt{AW} para ``Adilson--Wesley'' e \texttt{TUG} para ``\{\TeX\{\}\} User Group'' para facilitar a digitação de dados. Note que, comandos 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} 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á substituído 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 deste 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 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}, com o 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 manualmente. Não esqueça de comentar o \begin{verbatim} \bibliographystyle{[estilo bib]} \bibliography{[arquivo bib]} \end{verbatim} Para especificar dados no arquivo de \BibTeX, 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. Como foi dito antes, 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 criar 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 item referê-se ao outro, usa-se o \verb+\index{ítem|see{referência}}+ 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}+ construído 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$. produzido respectivamente por \verb+$\Gamma_{ij}^{\phantom{ij}k}$+ e \verb+$\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 \verb+\textwidth+. \item[\textbackslash columnwidth]\index{columnwidth@\verb+\columnwidth+} Largura da coluna. Se for em uma coluna, coincide com \verb+\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 ou altera o valor 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 o valor da \verb+\minhamedida+ 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 \verb+\algumamedida+ 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ência. 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 \verb+\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 isso, usamos os 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 criado. 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++ for 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 \verb+\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, é \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 padrão \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 no \verb+\newtheorem+, está usando o comando \verb+\theoremname+ que será redefinido automaticamente 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 padrão \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 \verb+\documentclass+, o pacote \texttt{babel} reconhece este idioma e vai usar, mesmo que não tenha passado 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}+ é o espaçamento um e meio e \verb+\linespread{1.6}+ é o 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 o problema. \section{Sobre hifenização} O pacote \texttt{babel} carrega a regra de hifenização para o 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 não acentuadas: % não 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, como 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, ajustar o espaçamento de linhas como sendo 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 o 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 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. O código % \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}. Inicialmente, precisa criar uma regra do que fazer quando tiver uma determinada 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 é o 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 comando \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 será 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} Fonte 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 pelas especialistas no assunto. Vamos ver como usar a fonte \texttt{Times}\index{Times} que é uma das fontes populares. Para selecionar a fonte \texttt{times}, usa o pacote \texttt{mathptmx}\index{mathptmx}. Basta colocar \verb+\usepackage{mathptmx}+ no \texttt{preamble} 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árias outras 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 redefinidas. 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 dele. 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 mono espaçado (\verb+\ttfamily+), 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. Um desses ajustes é reduzir ou ampliar levemente o tamanho da fonte para melhorar 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 o 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, 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 é assumido 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 cabeçalho 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 erroneamente 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 um modelo entre alguns prontos através da opção 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 o pacote \texttt{fncychap} não consegue refazer o estilo como no \texttt{titlesec}. Assim, para configuração mais refinada de títulos de capítulos e seções, costumam usar o \texttt{titlesec}. Este pacote, além de configuração refinada 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 cálculo de medidas \usepackage[pagestyles]{titlesec} % para formatar título do capítulo e seção % 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. Este pacote também implementa a versão ``*'' do \verb+\caption+\index{caption*@\verb+\caption*+} que não será contabilizado (só coloca o título). No Exemplo~\ref{ex14:caption}, está configurado o nome da figura no ambiente \texttt{figure} como sendo \texttt{Imagem}. A 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, usa 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 o 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 comandos 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 \verb+\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 adiciona um item 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 diversas fontes gratuitas para diagramar o documento. Em geral, usamos o \texttt{Latin Modern}\index{Latin Modern} que é uma extensão do \texttt{Computer Modern}\index{Computer Modern} para derivados de latim que tem letras acentuadas. Para isso, é só carregar 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 outras. 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} \usepackage{newtxtext,newtxmath} \end{lstlisting} \end{singlespacing} A fonte \texttt{Palatino} com \begin{singlespacing} \begin{lstlisting} \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 transição grosso 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{stix} (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 co outra, como do \texttt{amssymb}, deve carregar o complemento antes do pacote de fonte desejado. 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 pacote \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 subfiguras e subtabelas 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 tabela 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 no 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 os 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 podem 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 tanto 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. Veja a Seção~\ref{sec:xcolor} do Capítulo~\ref{chap:xcolor:tikz} para mais detalhes sobre recursos de \texttt{xcolor}. Note que, diferente das caixas padrões do \LaTeX{} ou do pacote \texttt{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 as páginas, como a marca d'água. 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'água. 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} na qual formata o código 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ário. 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} \vspace*{-0.5\baselineskip} \begin{lstlistinginside}%[belowcaptionskip=1\baselineskip] \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 obtida 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, o que ajuda o leitor que cópia o código do documento para editor de texto. 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} aceita 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 usados (logo, não aparecem nas referências). 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. Estilo padrão do \texttt{natbib} são \texttt{plainnat}\index{natbib!plainnat}, \texttt{abbrvnat}\index{natbib!abbrvnat}, \texttt{unsrtnat}\index{natbib!unsrtnat}. Também suporta vários \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. Para criar próprio arquivo de estilo \texttt{bst}, comece gerando um modelo com \texttt{makebst}\index{makebst} do pacote \texttt{custom-bib}\index{custom-bib}. %%%%%%%%%% 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 para \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 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. o código anterior, 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} é a 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 amarelo. %, 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 \protect\texttt{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 do \texttt{tikz} 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. A forma como vai 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 pé do perpendicular abaixado de (B) % sobre a reta determinada pelos pontos (A) e (C) \coordinate (H) at ($(A)!(B)!(C)$); \draw (A) -- (B) -- (C) -- cycle; \draw[blue] (B) -- (H); % Coordenada com rótulos (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 padrão será 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 colocar 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 desenhar 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 até 2017, ele não aparece. 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 desejado, 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 caixas como o \verb+\fbox+. No Exemplo~\ref{ex16:poster}, foi usado o pacote \texttt{lipsum} para preencher o espaço com texto para 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 uma área reduzida com letra normal que 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 usa o ambiente \texttt{verbatim} ou similar. \item[allowframebreaks] Ativa a quebra automática de \texttt{frame}'s quando o conteúdo 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 de documento fonte 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 padrõ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 (Palatino 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) %\vspace*{-1.5\baselineskip} \] \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 \noindent \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{Palatino}. \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 das 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 se a fonte do primeiro parâmetro existe. Caso existir, executará o segundo parâmetro e caso 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{} é lista 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 no final da lista para evitar de cair no \texttt{Fira Sans} que nem sempre é desejável. No entanto, \texttt{iffont} só funciona no \XeLaTeX{} (testados nas versões 2016 e março de 2018). Para que as funções do \texttt{iffont} funcione no Lua\LaTeX, reescreva o comando \verb+\@iffont@checkfont+ usando o \verb+\IfFontExistisTF+ 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 ajuste, os comandos de \texttt{iffont} vão funcionar no Lua\LaTeX{} também. Por exemplo, o código \begin{singlespacing} \begin{lstlisting} \settofirstfound{\mainfont}{Noto Serif, Latin Modern Serif} \setmainfont{\mainfont} \end{lstlisting} \end{singlespacing} % configura para usar o ``Noto Serif'' como fonte padrão caso existir. Caso ele não for encontrado, usa-se a fonte ``Latin Modern Serif''. 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 as fontes pelo nome, tente usar o 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 (incluindo 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 carácter 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 as 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} Lembre-se que, para o pacote \texttt{iffont} funcionar no Lua\LaTeX, precisa ajustar o comando \verb+\@iffont@checkfont+ após carregar o \texttt{iffont}. O comando \verb+\jafamily+ será definido quando encontrar alguma fonte 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 a 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{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 não existem nas fontes japonesas escolhidas, terá problemas. % ou 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 \texttt{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 ``\verb+_+'' 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. Quando o pacote é uma classe de documento baseado num documento já existente, poderá carregar a classe de documento pelo comando \verb+\LoadClass+ e efetuar ajustes necessários. 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 o 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 no modo \TeX, pois não saberemos a codificação que o usuário final vai escolher no seu documento. 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 uma determinada opção for especificada, 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. Também podemos passar opções para classe que será carregado pelo comando \verb+\PassOptionsToClass+ ou para o pacote a ser carregado com o comando \verb+\PassOptionsToPackage+. No caso de querer que alguma opção seja aplicada como padrão, poderá usar o comando \verb+\ExecuteOptions+. Quando tem a declaração de opções, deve colocar \verb+\ProcessOptions+\index{ProcessOptions@\verb+\ProcessOptions+} após terminar todos \verb+\DeclareOption+ e \verb+\ExecuteOptions+ para que opções fiquem prontos para o uso. % Em geral, costuma colocar o \verb+\ProcessOptions+ no final do arquivo. 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 numéricos 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 comando \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 (idioma selecionado 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ásico 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 Instantânea'', 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ências'' e em ``Configurações de Idiomas'', item ``Verificador Ortográfico'', escolha um verificador em ``verificador ortográfico''. 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 perder 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 algoritmo, 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{} no documento, 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 os símbolos no ``Math Panel'' (mostrado quando o cursor está na fórmula) que exibirá o nome do 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} no atalho \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 de repetição que é algo como \begin{singlespacing} \begin{lstlisting} \DTLforeach{lista}{% \personname=Nome,\worktitle=Trabalho}{% ... } % \DTLforeach \end{lstlisting} \end{singlespacing} O primeiro parâmetro do comando \verb+\DTLforeach+\index{DTLforeach@\verb+\DTLforeach+} é o atalho para arquivo \texttt{CSV} que foi criado pelo comando \verb+\DTLloaddb+. O segundo parâmetro é 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 terceiro 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 \texttt{A5}, para ser impresso no papel \texttt{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 um ``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 a 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, caso ocorrer o erro do tipo ``No room for ...''. Se ainda ocorrer erro, aumente o valor de $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 podem ser curtas. Neste caso, é aconselhável que coloque mais de um item por linha, mas mantendo o 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} Além do pacote \texttt{tasks}, existem outros pacotes que permitem colocar mais de um item por linha na lista. Uma delas é o \texttt{enumitem} que permite formatar a lista de forma similar ao pacote \texttt{enumerate}, mas com recursos adicionais. A opção \texttt{shortlabels} no pacote \texttt{enumitem} ativa o modo de compatibilidade com o pacote \texttt{enumerate}, permitindo formatar enumeração da lista \texttt{enumerate} via modelos. A opção \texttt{inline} criará a versão ``*'' dos ambientes de lista na qual não muda de linha entre os itens. Para alinhar os itens das listas versão ``*'' como no pacote \texttt{tasks}, poderá usar o pacote \texttt{tabto}. Veja o Exemplo~\ref{ex:d:enumitem} que usa os pacotes \texttt{enumitem} e \texttt{tabto}. \begin{ltxlisting}[caption={ex-d-enumitem.tex},label=ex:d:enumitem] \documentclass[12pt,a4paper]{article} \usepackage[T1]{fontenc} % codificação da fonte em 8-bits \usepackage[utf8]{inputenc} % acentuação direta \usepackage[brazil]{babel} % em português brasileiro \usepackage{amssymb} %para comando \square \usepackage[inline,shortlabels]{enumitem} \usepackage{tabto} \usepackage{xcolor} % para mudar de cor \begin{document} % Em vez de indentar, cria espaço extra entre parágrafos \parindent=0em % indentação nula \parskip=\baselineskip % um linha entre parágrafos % No parâmetro opcional, aceita a formatação de enumeração como do pacote enumerate (ativado pela opção shortlabels) % Também poderá configurar as fontes % As opções são separados pela vírgula \begin{enumerate}[1),font=\color{blue}] \item Item 1 \item Item 2 \item Item 3 \end{enumerate} % Nas listas como o enumerate e itemize, poderá configurar o \label que rotula os itens. Neste exemplo, será colocado um circulo na enumeração. % O "*" no label será substituido pelo enumi, enumii, etc dependendo do seu nível. \begin{enumerate}[label={\large\protect\textcircled{\normalsize\arabic*}}] \item Item 1 \item Item 2 \item Item 3 \end{enumerate} % Quantas "colunas" vai ter na tabulação (que será usada na lista versão "*") \NumTabs{5} % Na lista versão *, poderá indicar o que colocar entre itens consecutivos com itemjoin % No caso, o \tab será usado para alinhar itens em colunas. \begin{enumerate*}[1.,itemjoin={\tab}] \item Item 1 \item Item 2 \item Item 3 \item Item 4 \item Item 5 \item Item 6 \item Item 7 \item Item 8 \item Item 9 \item Item 10 \end{enumerate*} %\NumTabs{4} % poderá mudar o número de colunas, se desejar % Ítens longas podem ocupar dois ou mais "colunas" automaticamente \begin{itemize*}[label=$\square$, itemjoin={\tab}] \item Item 1 \item Item 2 \item Item 3 \item Item 4 \item Item 5 \item Item longa com espaço maior \item Item 7 \item Item 8 \item Item 9 \end{itemize*} \end{document} \end{ltxlisting} \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 no caso de 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 a 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 suas 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 é 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. Com isso, podemos compilar partes do documento, assim como todo o 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}