Pages

Saturday, May 30, 2009

Makefile para LaTeX

Acabo de concluir um Makefile para LaTeX.

Ele identifica a existência ou não de bibliografia, índices, glossários e nomenclaturas e qual é o nome do arquivo principal da estrutura do documento. Também agiliza as coisas para quem usa o prosper (para fazer apresentações com o LaTeX). Pois, nesse caso, apenas o PDF interessa. Note que essa questão existe unicamente para meu próprio conforto.

Não se pode ter dois documentos principais (ou seja, com o \begin{document}) com a extensão .tex no mesmo diretório (bom, até pode, mas o resultado é imprevisível). Se a extensão desse segundo for .tex.old não tem problema algum. E se o \begin{document} estiver comentado, o Makefile o ingnora.

Esse Makefile não trata arquivos .ps. Eu não gosto desses arquivos e por isso ele não é tratado, embora, em alguns casos, ele seja criado como um arquivo intermediário.

Esse script suporta o comando latex e o comando pdflatex. O primeiro gera um .dvi, que nesse script deve ser convertido para .ps e depois para .pdf (existem outras formas, mas não estão implementadas). O segundo gera um pdf diretamente.

Alguns do programas internos podem ser configurados (com o valor da variável TEX, que pode ser latex ou pdflatex ou o nome dos visualizadores de arquivo). Além de opções internas de cada comando. Nota-se que alguns comandos não podem ser modificados facilmente. Isso foi feito para ser assim mesmo. O caso mais "polêmico" é que a única forma de converter o .ps para o .pdf implementada é com o ps2pdf.

Para ajuda, digite "make help" no terminal dentro do lugar onde está o Makefile (com esse nome) ou "make -f ArquivoMakefile help" caso tenha modificado o nome do arquivo.

Esse arquivo Makefile faz parte do esforço para transformar o vim em uma suíte completa para o LaTeX. Esforço esse quase concluído (eu ainda não divulguei outras melhorias já existentes), falta apenas melhorar a análise de "warnings" e "errors" do arquivo .log criado. A leitura direta do .log retarda muito a identificação dos erros. Portanto eu irei destacar as palavras chaves de alerta e erro para encontrar rapidamente a informação que interessa no log.

2 comments:

  1. Opa Mitre!

    O próximo livro será: Latex para iniciantes? :-)

    Este lance do makefile parece ser legal, mas carece de uma introdução sobre o mesmo!

    Eu entendi que ele automatiza a geração de uma documento editado no latex, mas ainda assim, acho que um texto mais a prova de idiotas seria legal :-)

    abs

    ReplyDelete
  2. Na verdade, esse devia ter sido o primeiro...

    O curso sobre o GNU/Linux que eu lecionei substituiu um curso de LaTeX que quem ia apresentar não pode e eu não me senti qualificado para apresentar.

    A programação em make é mais complicada do que parece (bom, alguns diriam que é mais simples do que parece). Explicar tudo, detalhadamente, é não fácil (e o livro do make é duro).

    Mas você entendeu bem o espírito da coisa. O Makefile é um script que é acionado quando se digita make no terminal.

    Esse script automatiza o processo de criar um DVI/PDF e ainda aciona o visualizador para ajudar.

    Então coloque o Makefile no diretório que está o código latex e execute suas opções dali.

    Eu vou colocar na lista de coisas para escrever: "escrever sobre o make/Makefile".

    Um abraço...

    ReplyDelete