5 de fevereiro de 2009

Referências em LaTeX

O TeX foi criado para facilitar a diagramação de trabalhos acadêmicos e obras mais complexas, como livros; mas pesava contra ele, o fato de utilizar comandos muito complicados para formatar o texto. Desta forma foram criadas bibliotecas para auxiliar na sua utilização, sendo a LaTeX, a mais usada. LaTeX trabalha como uma camada de abstração entre o usuário e o TeX, logo este ainda é usado indiretamente, mas o fato é que juntas, estas ferramentas facilitam muito a diagramação de trabalhos acadêmicos. Contudo, elas deixam uma lacuna no que tange a referências bibliográficas. Quem já fez trabalhos acadêmicos sabe da dificuldade em se formatar as referências e daí a necessidade de um sistema para facilitar esta etapa do trabalho.



Em 1985 foi criado por Oren Patashnik e Leslie Lamport (o mesmo criador do LaTeX), o BibTeX (pronuncia-se Bibtéck). Este novo sistema de referências estende as funcionalidades do LaTeX, permitindo a criação e manutenção das referências de forma bem mais fácil. Para isso, o BibTeX trabalha com as referências como um banco de dados. No caso, cada referência cadastrada é uma linha do banco e cada característica dela, como autores, nome da obra, data de lançamento e tipo, corresponde a uma coluna. Para fazer isso, o BibTeX utiliza uma notação singular, mas relativamente fácil. Para fazer isso, o usuário digita esse código em BibTeX  em um editor de textos como o GEdit e o salva com a extensão .bib. Para entendermos a sintaxe do BibTeX, levemos em consideração a listagem 1.

Nota: É possível utilizar o BibTeX com outros processadores de texto, como o MS-Word, mas este texto trata da ferramenta no ambiente LaTeX.


@book{NSH07,
    author = "Evi Nemeth and Garth Snyder and Trent R. Hein",
    title = "Manual Completo do Linux: Guia do Administrador",
    publisher = "Pearson",
    edition = "2",
    year = 2007
}
Listagem 1. Exemplo de código válido para o BibTeX.

Na linha 1 da listagem 1, temos a discriminação daquele registro como sendo um livro. Para isso, utiliza-se o caractere arroba (@) seguido pela string book. Perceba que declaração de todo registro deve ser delimitada por chaves. O primeiro campo do registro (NSH07) é o seu identificador, que servirá para discriminá-lo dentre os outros registros cadastrados, além de ser o nome que referenciará aquele registro no texto. Assim, muita atenção com ele. Dentro do registro pode haver várias informações sobre a referência e estas são declaradas como informação = valor e separadas por vírgula. No exemplo citado, temos o campo author recebendo nomes de 3 autores, todos separados pela palavra and e delimitados por aspas duplas. Um detalhe interessante da sintaxe do BibTeX é que strings podem ser declaradas com chaves em vez de aspas, o que demonstra uma certa flexibilidade da linguagem. Nas linhas 3, 4 e 5 temos declarações semelhantes, respectivamente para título, editora e edição. Na penúltima linha está declarado o ano de lançamento da obra, sendo que este é um valor numérico, ou seja, não precisa estar entre aspas (mas pode ser declarado entre aspas também).

Nota: A sintaxe do BibTeX não é sensível ao caso dos caracteres.

Nota: Caso o leitor queira saber mais sobre os tipos de entrada e as informações que elas podem conter, veja a página da Wikipedia na seção Leitura Recomendada, no rodapé deste texto ou este link.

Com o código da listagem 1 devidamente digitado e salvo num editor de texto, com o nome de, digamos, Refs.bib, basta criar no mesmo diretório um arquivo em LaTeX para usá-lo. Tomemos a listagem 2 como exemplo. Nela podemos perceber como criar comentários em LaTeX, através do caractere de porcentagem. É importante salientar que, assim como em Python e Shell Script com o sustenido (#), o compilador LaTeX ignora tudo que estiver entre o símbolo de porcentagem e o final da linha. Na linha 5 temos a indicação para o compilador que estamos usando o pacote de citações, que é responsável pela numeração das mesmas no texto e nas referências. Nas linhas 6 e 7, indicamos o uso de hifenização em Português do Brasil e permitimos a utilização de caracteres comuns neste idioma, como á, é, í, ó e ú. Na linha 14, definimos o título do documento, procedido pelo nome do autor na linha 15 e a data do mesmo na linha 16, que recebe a data atual do sistema. Na linha 18, inserimos o título do documento no texto, lembrando que esta inserção obedecerá o estilo que for usado (neste caso serão incluĩdos, além do título, o nome do autor e data, no cabeçalho do documento). Nas linhas 20 e 22 temos o texto propriamente dito. Nelas, temos as marcas \textbf{} e \textit{}, que colocam o seu conteúdo (o que estiver entre as chaves – isto é uma regra de sintaxe do LaTeX) em negrito e itálico, respectivamente. Na linha 22, temos a string ~\cite{NSH07}, que insere uma referência ao registro bibliográfico de identificador igual a NSH07, que deve estar presente no arquivo de referências do texto. As linhas 25 e 26 indicam, respectivamente, o nome do arquivo que contém as referências bibliográficas (que deve estar no mesmo diretório do arquivo .tex e não precisa ser expresso com sua extensão).

% 
% Preamble
%
\documentclass[12pt]{article}
\usepackage{cite}  % Needed to use citations.
\usepackage[brazil]{babel}  % pt_BR hifenization
\usepackage[utf8]{inputenc}  % Allow direct edition with brazilian characters. 

% 
% Body
% 
\begin{document}

\title{pipeless}
\author{José Lopes de Oliveira Júnior}
\date{04 de fevereiro de 2009}

\maketitle

\textbf{pipeless} é um \textit{blog} sobre \textit{software} livre/código \
aberto, código proprietário com foco em \textit{Apple}, desenvolvimento \
pessoal e profissional e programação em \textit{Python}.

Seu autor, \textbf{José Lopes de Oliveira Júnior}, gosta muito de \
\textit{Linux} e indica a leitura de ~\cite{NSH07} para quem quiser saber \
mais sobre o sistema operacional livre.

% The references itself.
\bibliography{Refs}{}
\bibliographystyle{plain}

\end{document}
Listagem 2. Código LaTeX que usa o código BibTeX da listagem 1.

A saída da compilação dos códigos das listagens 1 e 2 pode ser vista na figura 1. Repare que a citação recebeu uma numeração automática e foi inserida no local indicado, onde todo o layout, inclusive o uso de numeração para citações, é definido pelo estilo em uso no documento, ou seja, o usuário não precisa se preocupar com isso.


Figura 1. Resultado da compilação dos códigos apresentados.


Conclusão
Se por si só o LaTeX ajuda na formatação de textos acadêmicos, em conjunto com o BibTeX ele forma um sistema extremamente útil a pessoas que precisam realizar este tipo de trabalho. A sintaxe do BibTeX é bastante flexível e intuitiva, permitindo que novas referências sejam criadas ou editadas com o mínimo de trabalho e sem afetar a apresentação do documento.Como pode ser percebido, a utilização de LaTeX + BibTeX torna fácil a manipulação de referências, no ponto em que ele próprio gerencia a numeração das mesmas, ou seja, o usuário se limita a dizer, no texto, que em tal ponto deveria entrar a referência tal e tendo-a cadastrada no seu banco de dados de referências, o sistema de diagramação fica responsável por numerá-las e referenciá-las corretamente.




Leitura Recomendada

Leia Também

15 comentários:

  1. Fala zezim!

    Realmente o TeX é uma grande ferramenta de diagramação de textos, alias, eu nem fazia idéia que existiam "mecânismos" de formatação de textos. Depois de acompanhar as suas três últimas publicações me deparei com uma questão.

    Toda vez que eu tenho que fazer um trabalho grande, eu procura utilizar duas ferramentas, o MS Word ou o Bloco de Notas. E não me lembro agora qual foi o professor que me ensinou a primeiro digitar depois formatar e sempre segui esta ordem, daí vem a dúvida:

    Tendo em vista as minhas escolhas (Word e Notepad) como eu faria para depois do texto digitado eu formatá-lo utilizando o TeX???

    Tenho mais a acrescentar, mas depende de sua resposta.

    Abraço!

    ResponderExcluir
  2. Salve, Fabrício!

    O MS-Word não complementa ou é complementado pelo TeX. Conforme mostrado nas duas primeiras postagens, ele é um concorrente do TeX, mas com outro nicho de mercado. Enquanto que no Word você se preocupa com a formatação do documento, juntamente com o conteúdo do mesmo, no TeX você só se preocupa com o texto. O estilo fica em outro nível.

    O processo de criação de um trabalho no TeX é: Se necessário, cria-se o arquivo BibTeX. Digita-se o texto do trabalho num editor, marcando-o com as macros LaTeX (itálico, negrito etc. - como mostrado na listagem 2); compila-se o arquivo marcado e voi lá!

    Interessante notar que TeX, Writer e Word são processadores de texto. Bloco de notas e GEdit são editores de texto. Há um abismo entre estes conceitos. Por isso, não se usa processadores de texto para fazer arquivos LaTeX. Processadores de texto normalmente inserem formatações no texto que o usuário não pediu. Editores de texto não fazem isso.

    Respondi a sua pergunta?

    Abraço!

    ResponderExcluir
  3. Sim, respondeu.

    Para você entender como eu estava pensando: eu não achei a formatação do texto dificil, claro que por eu ter experiência com linguagens de programação, eu tenho a mente mais aberta para este tipo de diagramação. Mas o cara que for usar o TeX, ele terá duas opções:

    1. Escrever o texto livremente dentro do editor do texto e no final, voltar realizando os comandos do BibTeX.
    2. Escrever o texto editando os comandos do BibTeX.

    Concluindo, eu vejo uma grande idéia com o TeX e ele sem dúvidas tem as suas vantagens sobre os vários processadores de texto do mercado, acredito também que a formatação do texto saia praticamente perfeita na primeira vez que você o compilar, mas eu por outro lado, prefiro utilizar o Word ou similar. Por quê? Acho que terei menos trabalho quanto a digitação.

    Até concordo com o que mensionou no primeiro post sobre o TeX, onde disse que uma pessoa pode perder um tempo valioso na formatação do texto, mas o tempo que você irá levar para escrevê-lo em formato BibTeX e o tempo que irá levar para escrevê-lo no Word ou similar, do meu ponto de vista é o mesmo. Ao mesmo que você me mostre vantagems que eu ainda não enxerguei.

    Abraço!

    ResponderExcluir
  4. Salve!

    Realmente, se você analisar pelo que foi apresentado até agora, a carga de escrita no TeX é maior. No Writer, por exemplo, para colocar o texto Hello, Word! em negrito, bastaria selecioná-lo e colocá-lo em negrito. Já em TeX, você teria que fazer \textbf{Hello, World!}, para ver o texto em negrito após a compilação.

    Agora, imagine a seguinte situação: você trabalha numa empresa que possui um padrão para apresentação dos documentos. De um dia para o outro, a empresa troca a cor do logotipo dela, de vermelho para azul e mandam que você troque todos os documentos. Se você usar o programas WYSIWYG, como o Writer, você terá que abrir cada arquivo, mudar todos os lugares onde se usa aquela cor e salvar. Se usar TeX, basta alterar o estilo que você utiliza e recompilar todos os arquivos (se você for um cara safo, você ainda dá um jeito de automatizar isso via script e com um comando, compila tudo). Outra situação: você precisa apresentar o mesmo trabalho para dois locais, com padrões diferentes. Ainda mais uma: as normas ABNT são um saco de colocar em prática nos processadores de texto como o Writer. O que eu sempre vejo são pessoas usando vários arquivos: 1 para capa, outro para contra capa, banca avaliadora, dedicatória e todas aquelas boiolices, outro para sumário e outro para o texto em si. Isso sem falar nas margens, notas de rodapé etc. Em TeX, basta importar um estilo e alterar alguns poucos comandos para garantir a conformidade de um texto com um estilo.

    Para terminar, o que eu ainda não citei, mas que será abordado em breve: programas para auxiliar o autor na utilização de LaTeX e BibTeX. Coming soon...

    Abraço!

    ResponderExcluir
  5. Grande zezim!

    Agora você acrescentou algo que me chamou a atenção, que é a questão de haver como importar os estilos (pode ser que tenha falado antes e eu não pesquei), neste caso sim o TeX se torna muito útil, realmente só mudar o estilo ajuda muito, coisa que os processadores de texto não fazem hoje. Alias, eles fazem de tudo hoje, só as duas coisas mais importantes que não, digitar o texto para você (até então né, pois já existe reconhecedores de voz) e formatá-lo de acordo com um modelo padrão ou norma padrão. Agora vou aguardar seu próximo post para ver o que mais o TeX tem a oferecer.

    Abraço!

    ResponderExcluir
  6. Salve, Fabrício!
    A minissérie FerramenTeX, dentro da coluna sobre TeX responderá muitas das suas dúvidas. Até então foi apresentada a teoria. Indo à prática, muitas coisas se esclarecem (espero).
    De qualquer forma, é só perguntar e ficarei feliz se puder responder!
    Abraço!

    ResponderExcluir
  7. Galera,
    Dá pra importar ref de un docum. TEX para o Bibtex? (fazer o contrário?)

    ResponderExcluir
  8. @Frans, eu nunca li algo a respeito disso. Não creio que seja algo usual. De qualquer forma, a ideia não é má.
    Abraço!

    ResponderExcluir
  9. Caro José,

    Sou neófito no uso do latex e estou tendo dificuldades para compreender o posicionamento das referencias bibliográficas no projeto novo. Sei que existe o ambiente latex e sei que existe o template do projeto, além disso tenho o editor tecnix, mas minhas referencias nao estao aparecendo, o que posso fazer? como entender esse funcionamento?

    Abraços,

    Benedito

    ResponderExcluir
  10. Tourinho,

    Fica um pouco dificil responder a sua pergunta, sem ver como você está fazendo as referências no seu projeto. Não conheço o TeXnic também... Provavelmente o erro está descrito nas mensagens de compilação. Dê uma lida nos outros textos que eu fiz sobre o assunto [1] e tente compilar o exemplo que eu apresentei neste texto. Tenha certeza de não estar errando na sintaxe do arquivo de referências e nem nas chamadas de referências no texto. Se você conseguir compilar o exemplo deste texto, provavelmente você está errando algo no seu projeto. Se não conseguir, pode ser que alguma dependência ou configuração especial esteja faltando no seu editor.

    Abraço!


    [1] http://pipeless.blogspot.com/search/label/Diagrama%C3%A7%C3%A3o%20com%20TeX

    ResponderExcluir
  11. Tourinho,

    Provavelmente você já resolveu seu problema, mas se não tiver resolvido eu vivenciei algo parecido. Este link poderá ajudá-lo (http://www.andy-roberts.net/misc/latex/latextutorial3.html).

    Bom, se você é tão fraldinha quanto eu no LaTex, provavelmente ninguém te avisou que para que as referências apareçam tanto no meio do seu texto, quanto lá na blibliografia, você precisa compilar seu arquivo .bib, do contrário vai aparecer a mensagem "LaTeX Warning: There were undefined references" e necas de bibliografia pra você. O que eu fiz foi o seguinte:

    1 - Abri meu arquivo .tex (corresponde à listagem 2 do post do José). Meu arquivo .bib já estava no mesmo diretório (talvez essa informação não seja relevante pra você, mas preferi deixar claro).
    2 - Compilei meu arquivo .tex e apareceu a mensagem de erro que citei acima.
    3 - Procurei no meu editor, e lá tinha um botão de compilação chamado "BibTex Compilation" (eu uso o LED). Apertei esse botão. Atenção, essa compilação deve ser feita no arquivo .tex.
    4 - Enfim, daí fiquei mesclando compilar o arquivo .tex ora através do botão "BibTex Compilation", ora através do botão "LaTex Compilation". Deu certo, as referências apareceram depois de umas 4 ou 5 compiladas.

    Espero que tenha ajudado.

    ResponderExcluir
  12. Oi!!

    Por favor, me ajudem!!. Tenho uma referência no meu *.bib do tipo "João and Juliano" que tirei do ADS. Eu gostaria que no texto e na lista das referências ele fique como "João & Juliano", alguem sabe como é que se faz????

    ResponderExcluir
  13. Creio que uma simples edição no arquivo .bib resolve, não?

    ResponderExcluir
  14. Bibliography and citation style:
    http://sites.stat.psu.edu/~surajit/present/bib.htm

    ResponderExcluir
  15. Muito bom... mas as referencias não aparece no Sumário...
    o q tenho de fazer?!

    ResponderExcluir