Um Curso de \LaTeX
Edição n. 7
Edição n. 7

Nesta edição, definir alguns conceitos iniciantes sobre LaTeX, nivelar nossos conhecimentos e ensinar como criar um projeto usando editores dedicados a LaTeX (Linux/Windows). Por fim, introduziremos a idéia da próxima edição: um relatório LeGauss. Reforçando, nosso objetivo é conseguir aprender a construir relatórios, não artigos. No entanto, no próximo episódio mostraremos como um relatório pode ser escrito usando classes usuais em artigos.
Para quem está começando há pouco LaTeX
Para os que estão começando há pouco tempo é interessante escrever algo introdutório. Vamos fazer isso rapidamente.Chamamos de preâmbulo de nosso código arquivo fonte toda a região que precede a macro [0]
\begin{document}
O preâmbulo é uma parte importante da fonte porque é nele em que definimos quais pacotes vamos utilizar, como queremos a formatação da página e, em alguns casos, até o cabeçalho do documento. Também é no preâmbulo que criamos atalhos e ambientes novos.
A classe do documento define globalmente a formatação do documento. Exemplo: tamanho de página, tamanho de letra, margens, tipo da fonte, etc. Todos os parâmetros podem (e serão) editados ao gosto do usuário. As classes mais comuns são article, book e report. Também são muito utilizadas as classes revtex4, amsclass, sciposter e beamer. Estas duas últimas citadas constroem, respectivamente, pôsteres e apresentações de slides [1].
Para inserir figuras, o meio mais simples é criá-las utilizando a extensão ps, embora também seja possível utilizar formatos como pdf ou gif. No entanto, terceira parte desta série, mostraremos como criar figuras utilizando um pacote muito interessante: pstricks. Nesta mesma parte, mostraremos como criar gráficos detalhados usando o software livre gnuplot.
Ambientes em LaTeX são regiões delimitadas por duas macros, \begin{A} e \end{A}, que fornece alguma propriedade diferente ou delimitação especial para seu interior. Por exemplo, para inserir uma equação numerada, usamos o ambiente equation. Ao dizermos isso, queremos dizer que a equação f = ma deve ser inserida no arquivo fonte da seguinte forma:
\begin{equation}
f = m a
\end{equation}
f = m a
\end{equation}
Neste caso, a equação está sob influência do ambiente equation. Figuras e tabelas também são inseridas dentro de ambientes, usualmente.
A formatação de um relatório
Não há qualquer padrão global que defina como um relatório deva ser escrito. E é por isso que os parâmetros das classes podem ser modificados. O importante é ter sempre isto em mente: verifique bem como deve ser escrito seu relatório. Ao verificar, preste aenção aos seguintes tópicos:- tamanho e tipo de fonte;
- margens (direita, esquerda, topo, rodapé);
- número de páginas;
- formato da capa;
- formato da bibliografia
Começando pelo preâmbulo
Um preâmbulo bem escrito é a base para um documento legauss. Como já adiantamos, é importante carregarmos todos os pacotes que vamos precisar, assim especificar detalhes de formatação. Segue um exemplo de preâmbulo.\documentclass[a4paper,11pt,portuguese,pra,superscriptaddress,nobalancelastpage,subeqn,nofootinbib]{abnt}
\usepackage[brazil]{babel}
\usepackage{amsmath,amssymb}
\usepackage{makeidx}
\usepackage{amsfonts}
\usepackage{wrapfig}
\usepackage[num]{abntcite}
\usepackage[ansinew]{inputenc}
\usepackage[usenames,dvipsnames]{pstricks}
\usepackage{epsfig}
\usepackage{pst-grad} % For gradients
\usepackage{pst-plot} % For axes
\usepackage[colorlinks,pagebackref,hyperindex]{hyperref}
\usepackage{subfigure}
%--- Something ----
\setlength{\textwidth}{6in}
\setlength{\textheight}{9in}
\setlength{\topmargin}{0in}
\setlength{\oddsidemargin}{0in}
\setlength{\evensidemargin}{0in}
%\setcounter{totalnumber}{20} \voffset=-1.75cm \hoffset=-0.50cm
% --- Theorem like environments ----
\newtheorem{theorem}{Teorema}
\newtheorem{definition}{Definição}
\newtheorem{example}{Exemplo}
\newtheorem{exerc}{Exercício}
\newtheorem{res}{Resolução do exercício}
\newtheorem{lemma}{Lemma}
\newtheorem{prop}{Proposição}
\newtheorem{law}{Regra}
% --- Definindo a numeração --- .
\numberwithin{equation}{section}
\numberwithin{definition}{chapter}
\numberwithin{prop}{chapter}
\numberwithin{theorem}{chapter}
\numberwithin{exerc}{chapter}
\numberwithin{res}{chapter}
\newcommand{\op}[1]{\mathbf #1 }
\newcommand{\dket}[1]{\left| #1 \right)}
\newcommand{\dbra}[1]{\left( #1 \right|}
\newcommand{\dbraket}[2]{\left( #1 \right|\left. #2 \right)}
\newcommand{\dbraketm}[3]{\left( #1 \right| #2 \left| #3 \right)}
\newcommand{\ket}[1]{\left| #1 \, \right\rangle}
\newcommand{\bra}[1]{\left\langle \, #1 \right.\mid}
\newcommand{\braket}[2]{\langle \, #1 \mid #2 \, \rangle}
\newcommand{\braketm}[3]{\langle \, #1 \mid #2 \mid #3 \, \rangle}
\newcommand{\pinterno}[2]{\left( #1 , #2 \right)}
\newcommand{\comut}[2]{\left[ #1 , #2 \right]} % THE COMUTATOR
\newcommand{\seitz}[2]{\left\{ \, #1 \mid #2 \, \right\}}
\newcommand{\rep}{\emph{rep} }
\newcommand{\irep}{\emph{irrep} }
\newcommand{\ordem}[1]{\mid G \mid}
\newcommand{\espgroup}[1]{\mathbb #1 }
\newcommand{\argu}[1]{\left( #1 \right)}
% Caso seja necessário alterar a notação vetorial, alterar aqui!
\newcommand{\vet}[1]{\mathbf #1 }%{\vec #1 }
\newcommand{\planewave}[1]{e^{i \left( #1 \right)}}
\newcommand{\planewavem}[1]{e^{-i \left( #1 \right)}}
\newcommand{\planewavm}[1]{ \exp \left(-i \, #1 \, \right)}
\newcommand{\planewav}[1]{ \exp \left(i \, #1 \, \right)}
\newcommand{\opw}{\emph{OPW}}
\newenvironment{demo}{%
\endsloppypar\noindent\bgroup\small{\bf{Demonstração:} }}
{\samepage\null\hfill$\diamond$\endsloppypar\egroup}
\hypersetup{colorlinks,%
citecolor=blue,%
linkcolor=black,%
urlcolor=black,%
}
\makeindex
%--------------------------------------------------------
\begin{document}
\usepackage[brazil]{babel}
\usepackage{amsmath,amssymb}
\usepackage{makeidx}
\usepackage{amsfonts}
\usepackage{wrapfig}
\usepackage[num]{abntcite}
\usepackage[ansinew]{inputenc}
\usepackage[usenames,dvipsnames]{pstricks}
\usepackage{epsfig}
\usepackage{pst-grad} % For gradients
\usepackage{pst-plot} % For axes
\usepackage[colorlinks,pagebackref,hyperindex]{hyperref}
\usepackage{subfigure}
%--- Something ----
\setlength{\textwidth}{6in}
\setlength{\textheight}{9in}
\setlength{\topmargin}{0in}
\setlength{\oddsidemargin}{0in}
\setlength{\evensidemargin}{0in}
%\setcounter{totalnumber}{20} \voffset=-1.75cm \hoffset=-0.50cm
% --- Theorem like environments ----
\newtheorem{theorem}{Teorema}
\newtheorem{definition}{Definição}
\newtheorem{example}{Exemplo}
\newtheorem{exerc}{Exercício}
\newtheorem{res}{Resolução do exercício}
\newtheorem{lemma}{Lemma}
\newtheorem{prop}{Proposição}
\newtheorem{law}{Regra}
% --- Definindo a numeração --- .
\numberwithin{equation}{section}
\numberwithin{definition}{chapter}
\numberwithin{prop}{chapter}
\numberwithin{theorem}{chapter}
\numberwithin{exerc}{chapter}
\numberwithin{res}{chapter}
\newcommand{\op}[1]{\mathbf #1 }
\newcommand{\dket}[1]{\left| #1 \right)}
\newcommand{\dbra}[1]{\left( #1 \right|}
\newcommand{\dbraket}[2]{\left( #1 \right|\left. #2 \right)}
\newcommand{\dbraketm}[3]{\left( #1 \right| #2 \left| #3 \right)}
\newcommand{\ket}[1]{\left| #1 \, \right\rangle}
\newcommand{\bra}[1]{\left\langle \, #1 \right.\mid}
\newcommand{\braket}[2]{\langle \, #1 \mid #2 \, \rangle}
\newcommand{\braketm}[3]{\langle \, #1 \mid #2 \mid #3 \, \rangle}
\newcommand{\pinterno}[2]{\left( #1 , #2 \right)}
\newcommand{\comut}[2]{\left[ #1 , #2 \right]} % THE COMUTATOR
\newcommand{\seitz}[2]{\left\{ \, #1 \mid #2 \, \right\}}
\newcommand{\rep}{\emph{rep} }
\newcommand{\irep}{\emph{irrep} }
\newcommand{\ordem}[1]{\mid G \mid}
\newcommand{\espgroup}[1]{\mathbb #1 }
\newcommand{\argu}[1]{\left( #1 \right)}
% Caso seja necessário alterar a notação vetorial, alterar aqui!
\newcommand{\vet}[1]{\mathbf #1 }%{\vec #1 }
\newcommand{\planewave}[1]{e^{i \left( #1 \right)}}
\newcommand{\planewavem}[1]{e^{-i \left( #1 \right)}}
\newcommand{\planewavm}[1]{ \exp \left(-i \, #1 \, \right)}
\newcommand{\planewav}[1]{ \exp \left(i \, #1 \, \right)}
\newcommand{\opw}{\emph{OPW}}
\newenvironment{demo}{%
\endsloppypar\noindent\bgroup\small{\bf{Demonstração:} }}
{\samepage\null\hfill$\diamond$\endsloppypar\egroup}
\hypersetup{colorlinks,%
citecolor=blue,%
linkcolor=black,%
urlcolor=black,%
}
\makeindex
%--------------------------------------------------------
\begin{document}
Neste caso apresentado, já temos diversas configurações feitas, como margens e atalhos. Explicaremos mais tarde com detalhes como essas configurações são feitas e você acabará esta série com um preâmbulo próprio para seu uso.
Criando seus projetos
Como relatórios costumam ser grandes, é muito comum utilizarmos diversos arquivos tex, separados, por exemplo, por capítulo ou assunto. Para trabalhar melhor com a grande quantidade de arquivos, existem editores dedicados ao LaTeX que unem informações organizadamente. Vamos sugerir a utilização de dois editores: Kile para usuários de linux e TeXnicCenter para usuários de Windows. Ambos são programas gratuitos.Vamos explicar com detalhes como criar e usar um projeto no Kile. Logo em seguida, comentamos como fazer o mesmo com o TeXnicCenter. Clique nas figuras para ampliá-las.

Primeiramente, abra o Kile sem começar a criar seu arquivo fonte. Selecione no topo Project e clique em New project...

Preencha os campos. É bastante útil salvar todo o projeto em alguma pasta nova, separada dos demais documentos. Por isso, forneça o caminho para a pasta no campo Project file.


Uma das características que faz com que a utilização de projetos com o Kile (e o TeXnicCenter) seja tão vantajosa está no fato de a compilação de qualquer um dos arquivos pertencentes ao projeto fazer com que o projeto todo seja compilado. Isso não ocorre quando usamos arquivos LaTeX separados em diferentes .tex, é necessário sempre compilar o arquivo principal. Mas com projetos, não: qualquer arquivo do projeto "compila" o projeto todo.
Para fechar o projeto, vá em Project e selecione Close project. Para adicionar um novo arquivo ao projeto, vá em Project e selecione Add to project.
Rapidamente, no caso de utilizarmos TeXnicCenter (a melhor opção para usuários de Windows) é tudo muito similar. Por isso, mesmo nesse caso sugiro a leitura da descrição para o Kile dada acima. No TeXnicCenter também existe um arquivo projeto, que armazena toda a informação do projeto. Também ao se utilizar um projeto, a compilação de qualquer arquivo do projeto acarreta na compilação global. Para criar um projeto, vá em File e selecione New project. Caso você queira utilizar BibTeX [2], marque a opção bibtex. O mesmo vale pro makeIndex. Forneça o nome e a lozalicação para o projeto. Mais uma vez, sugere-se a utilização de uma pasta própria para o projeto. Se for necessário (peça via comentário), coloco aqui alguns screenshots destes passos para o TeXnicCenter.
Independementemente do programa, para inserirmos um arquivo tex externo usamos a macro \input{}, em que o argumento apenas carrega apenas o nome sem extensão do arquivo tex externo. Assim, basta adicionarmos ao arquivo principal do projeto os arquivos subordinamos usando esta macro.
E que saída eu tenho do LaTeX?!
Há duas formas de criarmos um documento, e estas formas são caracterizadas pelo processador de textos utilizado em sua confecção: há os processadores W.Y.S.I.W.Y.G [3], que são aqueles em que você o constroi e, simultaneamente, verifica o resultado (Microsoft Office, BrOffice, Open Office, Lotus Symphony, etc), e há os processadores em que o resultado só é visto após todo o trabalho (ou após compilar parte do documento). O LaTeX funciona da segunda forma: você compila um código escrito em um (ou mais) arquivos tex e obtém o resultado final. Todos os outros processadores citados podem obter o mesmo que o LaTeX obtém, portanto trata-se, em grande parte, de uma escolha de personalidade.
Vamos começar efetivamente!
Meu chefe, o Tiago, pediu um relatório completo sobre como andam as visitas do LeGauss. Ele me deu uma semana para entregar um relatório parcial. Então, que tal montarmos um relatório sobre como andam as postagens e as visitas no LeGauss? Assim, semana que vem mostro pra vocês como ficou e como construi. A discussão apresentada nesta primeira parte será muito importante para montarmos esse relatório e já na próxima parte seremos capazes de montar um relatório com formatações padronizadas.Pronto para começar? Leia o próximo da série.
Notas de rodapé:
- [0] É comum nos referirmos aos comandos de LaTeX como macros.
- [1] Futuramente, trataremos dessas classes, em especial a sciposter para ajudar aqueles que enfrentam a rotina de apresentar-se em workshops ou congressos.
- [2] Ensinaremos no último dos artigos como utilizar o BibTeX.
- [3] What You See Is What You Get, o que você vê é o que você obtem.
Updates:
- Sem alterações até o momento.
9 comentários:
HAha! Seu chefe? :b
Muito legal e útil! Com certeza, depois vou ler com mais calma e usar. Muita gente acha que LaTeX só serve para escrever artigos científicos o que não é bem verdade.
Sugestão: depois de terminada essa série, você poderia ensinar a fazer outras coisas, tipo currículos, artigos, livros, etc...
Parabéns empregado, vai ganhar um aumento!
:)
Eita hierarquia...
nunca foi terminada essa série? =O
Boa noite,
excelente formulação,
mas cade a outras partes,
att.
btto
Boa noite,
aguardando a continuidade do assunto ...
att.
btto
Boa tarde,
legal esse post! eu tou tentando usar o abntex no ubuntu 9.04 com texlive e texworks, só que depois de instalado pela linha do apt o abntex, eu nao consigo fazer um documento com a classe abnt. ele dá aquele erro dizendo que a classe nao existe. C sabe como eu posso corrigir isso prá ficar funcionando? a propósito tou com o texlive-full.
cadê as outras partes, meu grande? Beijinho.
Em algum momento, elas vêm. Eu prometo ¬¬
Postar um comentário