domingo, 21 de abril de 2013

BibTex - O que ninguém conseguiu me dizer.

Por que o bibtex não funciona na classe document.

Há alguns dias, revisando as postagens antigas no blog (infelizmente ando meio sem tempo para atualizá-lo com mais frequência) de deparei com um comentário sobre o bibtex. Um leitor do blog me dizia que ainda não conseguia fazer funcionar...


Eu sempre usei o bibtex em conjunto com o pacote ABNTEX, e nunca havia reparado que sem ele o bibtex acusa um erro: falta um arquivo de estilo .bst. A classe abntex tem seu próprio abntex.bst e por isso funciona. Mas compilando um arquivo na classe book é preciso indicar que arquivo de estilo o bibtex deve usar.


Isso deve ser feito com a seguinte comando:


bibliographystyle{}


Que deve estar antes do bibliography. A questão passa a ser quais são os arquivos de estilo disponíveis? onde eles estão?


A segunda questão foi respondida com uma rápida olhada na partição raiz. Em /usr/share/texmf/bibtex encontrei um subdiretório bst. Nele doze subdiretórios com arquivos de estilo .bst. O que por fim, respondeu a primeira pergunta.


Testando alguns deles, descobri que os estilos do subdiretório base são acessíveis diretamente. Mas alguns estilos dos outros subdiretórios requerem a inclusão de pacotes específicos, como por exemplo os estilos do subdiretório natbib requem a inclusão do pacote natbib, com o comando obvio usepackage{natbib}. O estilo padrão do latex é o plain que está no subdiretório base. O arquivo deve ser referido no comando sem a extensão.


Parece simples, e realmente é. Apenas com a inclusão do estilo o bibtex funcionou com todas as classes Latex que suportam referências bibliográficas. Mas o mais estranho, é o fato de que eu não achei nada, em lugar algum, que me dissesse isso. Uma informação ao mesmo tempo tão importante e tão trivial, que não aparece nem na 'Não tão pequena introdução ao LaTeX'.


Nerdices a mil. Até a proxima.

Continue Lendo >

sábado, 20 de abril de 2013

ePub

Vindo do LaTeX para o ePub

Quando se fala em divulgação de documentos pela web, pensamos logo em PDF. É portátil, não permite alteração do texto e relativamente seguro. Mas quando falamos de ler um arquivo numa tela de 6 ou 7 polegadas, os PDF's começam a mostrar suas fraquezas.
Mas como tudo tem solução, para os e-reader da vida, temos o formato aberto ePub. Dinâmico e leve, é ideal para dispositivos moveis de tela pequena.

Pensando nisso, comecei a procurar um meio de converter meus pdf's em ePub's. Para minha surpresa não existe um comando LaTeX que converta diretamente o código LaTeX para ePub. Num primeiro momento, pensei "como não tem?, se existe o pdflatex para criar pdf's a partir do latex... poxa pdf é formato proprietário.


Mas com um pouco de pesquisa descobri os 'segredos' do ePub. Para quem quiser conhecê-los um pouco, eu preparei um pequeno guia para conversão de latex para epub. E de quebra conheci um ótimo programa para editar os metadados de PDF's, ePub e afins.


Clique ali(para sair um pouco do tal de 'clique aqui') para baixar a versão PDf do tutorial :epub.pdf

E claro a versão epub do mesmo tutorial: epub.epub


Se você quer um livro para ler no PC, recomendo a versão PDF, mas se você quer para um tablet ou e-reader, a versão ePub é muito melhor.


Nerdices a mil.

Continue Lendo >

terça-feira, 16 de outubro de 2012

PGF/Tikz

Turbinando os desenhos em LaTeX

Muita gente que precisou criar uma ilustração em LaTeX e tentou usar o ambiente 'picture', deve ter tido o mesmo sentimento de frustração que eu. O ambiente 'picture, nativo de LaTeX é bom, mas deixa muito a desejar, em especial se você precisar 'colorir' pequenas áreas, ou criar uma forma geométrica mais livre.

Para isso foi criado o PGF/Tikz, um pacote incrível, que permite desenhar qualquer coisa, quase a 'mão livre.'

O pacote disponibiliza o ambiente 'tikzpicture', que tem uma lógica muito simples:

  1. Um comando que define desenho (\draw), area (\path) ou elemento (\node).
  2. Uma coordenada do tipo (x,y) do plano cartesiano, que indica onde o objeto começa.
  3. tipo do objeto, como linha (--), circulo (circle), retângulo (rectangle) etc.
  4. Uma coordenado do tipo (x,y) do plano cartesiano, que indica o fim do objeto.
Exemplo: \draw (0,0) -- (2,0); O comando acima desenha uma linha de dois centímetros. Já o comando abaixo cria uma curva par cima: \draw (0,0) to [out=0,in=270] (1,1); O interessante o tikz é que você não precisa ficar em apenas dois 'nós', se quiser fazer uma linha angulada para cima basta fazer: \draw (0,0) -- (1,0) -- (2,1); Você pode continuar desenhando, mesclando ângulos de entrada e saída sempre que precisar, por quantos nós precisar. Uma coisa muito interessante do Tikz é a possibilidade de desenhar o gráfico de uma função, entrando apenas os pares ordenados dela, calculados em outro programa (no meu caso eu crio o script em python para calcular os pares ordenados). Veja um exemplo neste arquivo aqui. Neste outro arquivo, uma ilustração de física feita em tikz, veja aqui. Até a próxima.

Continue Lendo >

sábado, 25 de agosto de 2012

Coordenadas de uma Hiperbole

Calculando com Python

Python é mesmo uma 'calculadora' em forma de linguagem. Não atoa é usada até na ISS (International Spacial Station).

Revisando o plano cartesiano (por que? por que é legal!) enfrentei um exercício que pedia todos os resultados possíveis da equação y=12/x... Então por que não usar python para isso?

O trabalho com python é tão simples que tudo levou menos de 5 minutos. Pela primeira vez (claro que devemos considerar o código ser bem simples) eu codifiquei e rodei sem erros logo de primeira.


Veja o código aqui. Observe que ele pode ser facilmente adaptado para outras equações, já que o calculo acontece com 'x' e 'y' e a lista de resultados é gerada com 'a' e 'b', que convertem x e y (respectivamente) para ponto flutuante com uma casa decimal.


Você pode aumentar as casas decimais, alterando o numero em %.1f para o numero de casas que precisar.


Nerdices a mil, pessoal. Até a próxima.

Continue Lendo >