segunda-feira, 16 de fevereiro de 2009

Montando um relatório com LaTeX - parte 1

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

Este é o primeiro de uma série (ao fim, provavelmente 4 artigos) que pretende mostrar como montar um relatório técnico, seja para uma instituição de auxilio à pesquisa, seja para uma empresa ou seja um relatório interno em algum grupo. Nos focaremos à formatação do relatório, porque a primeira dificuldade encontrada por usuários novos de LaTeX é a customização: não pode ficar óbvio que o documento foi feito em LaTeX, mas sim que foi feito com profissionalidade. Esta tarefa, que não é tão simples quanto parece, é que vamos explorar.

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}

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
Anote todas as exigências a que o documento será submetido. Aos poucos, mostraremos como definir cada um destes parâmetros. Quando não houver especificações à vista, verifique relatórios de seus colegas para verificar qual o melhor jeito de montá-lo. Seguindo esta série, você poderá ver alguns exemplos que disponibilizaremos para download gratuito (incluindo código fonte). Assim, você poderá escolher aquelas dicas que melhor se aplicam ao seu caso.

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}


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.

O nome do arquivo tex principal não precisa conter .tex: nesse caso, o Kile adiciona automaticamente. Escolha também o nome do projeto e o nome do arquivo do projeto (continue vendo para entender melhor). Clique em ok.

Após estes passos, verifique a pasta onde o projeto foi salvo. Deve haver um arquivo tex com o título fornecido como arquivo principal, assim como um arquivo com extensão kilepr. Este arquivo armazenará toda a informação relevante sobre o projeto e seus arquivos. Para abrir o projeto e carregar estas informações, abra com o Kile este arquivo .kilepr. Na aba em ênfase do Kile na figura acima, são mostrados todos os arquivos que pertencem ao projeto, já evidenciando sua hierarquia (quem está incluso em quem).

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:
  1. Sem alterações até o momento.




9 comentários:

T disse...

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!

Thiago S. Mosqueiro disse...

:)

Juliana. disse...

Eita hierarquia...

Anônimo disse...

nunca foi terminada essa série? =O

Anônimo disse...

Boa noite,
excelente formulação,
mas cade a outras partes,

att.
btto

Anônimo disse...

Boa noite,
aguardando a continuidade do assunto ...
att.
btto

Anônimo disse...

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.

Anônimo disse...

cadê as outras partes, meu grande? Beijinho.

Thiago Mosqueiro disse...

Em algum momento, elas vêm. Eu prometo ¬¬