Gráficos vetoriais em PDF

Eu estava usando o LibreOffice Calc para criar gráficos para minha dissertação, porém não estava muito feliz com a conversão para imagem (PNG e JPEG). A solução é utilizar uma opção de exportação para e obter gráficos vetoriais em PDF, que pode ser aproximado sem perda de qualidade.

Criando os gráficos

A Planilha1 vamos deixar para os gráficos. As tabelas e cálculos ficam nas demais planilhas.

Na Planilha2 vamos criar duas tabelas: uma para o gráfico de uma reta e outra para parábola. Eixo X nos limites desejados e eixo Y calculado a partir do eixo X. A partir disso criamos dois gráficos: da reta e da parábola.

Veja que os gráficos possuem dimensão padrão de 16 cm x 9cm. No gráfico, clique com o botão contrário e selecione “Posição e Tamanho”.

Formatando a página

De volta à Planilha1, vamos formatar a página para que os gráficos caibam exatamente na página.

Selecione a Planilha1, entre em Menu Formatar > Página.

Na aba Página, configure Largura 16,1 cm, Altura 9,1 cm e as quatro margens 0 cm.

Na aba Cabeçalho, desative o cabeçalho. Na aba Rodapé, desative o rodapé.

Clique em OK para finalizar. O LibreOffice vai reclamar sobre as margens e impressão, aceite clicando em Sim.

Agora cada página possui tamanho 16,1 cm x 9,1 cm, um pouco maior que os gráficos, e não possui margens, cabeçalho ou rodapé para roubar espaço.

Organizando os gráficos

Agora recortamos os gráficos criados nas outras planilhas e colamos na Planilha1, um gráfico em cada página. Isso vai colocar um gráfico em cada página do PDF.

Para ver as divisões das páginas entre no menu Exibir > Quebras de página. É possível ajustar a altura e largura das células. Recomendo quatro colunas de 4 cm e três linhas de 3 cm.

Exportanto para PDF

Agora, para gerar o PDF com os gráficos, selecione a Planilha1, entre no menu Arquivo > Exportar como PDF, configure para imprimir seleção/planilhas selecionadas e clique em exportar.

Agora temos um arquivo com vários gráficos dentro dele. Ter menos arquivos é ótimo!

Importando no LaTeX

Agora basta importar os gráficos no seu documento LaTex:

\includegraphics[width=0.7\textwidth,page=1]{fig/Graficos.pdf}

Basta indicar qual a página que quer incluir com a opção page=?.

Também é possível recortar margens do gráfico importado usando as opções trim (ajustar as margens) e clip (recortar fora das margens):

\includegraphics[width=0.7\textwidth,page=2,trim=0.5cm 0.5cm 0.5cm 0.5cm,clip=true]{fig/Graficos.pdf}

Os comprimentos da opção trim são: esquerda, embaixo, direita e topo.

Então está feito!

Desta forma é possível criar gráficos vetoriais em PDF de qualidade utilizando o LibreOffice Calc, para inclusão em documentos LaTeX.

Alem dos gráficos vetoriais maravilhosos,outra vantagem é poder agrupar vários gráficos em um único arquivo PDF, ficando mais fácil organizar a pasta de imagens.

Software R no Ubuntu Linux

Instalando software R

É fácil instalar o software R no Ubuntu Linux. Use o comando abaixo:

$ sudo apt install r-base

Executável em linguagem R

No Linux podemos criar scripts (programas executáveis em arquivos de texto) e marcá-los com uma configuração para que possam ser executados facilmente. Basta usar o comando chmod. Assim podemos executar o programa com o comando ./PROGRAMA.

$ chmod +x PROGRAMA
$ ./PROGRAMA

Linux, a linguagem é R!

Mas e se o programa estiver escrito na linguagem do software R? Como fazer para o Linux saber que deve ser executado com na linguagem de programação R?

Basta colocar a seguinte primeira linha do programa em software R:

#!/usr/bin/r
# Programa ...
print(1+1)

#!/usr/bin/r – faz o Linux saber que o programa está escrito na linguagem do software R, já com opções adequadas para execução de scripts.

Outra opção, que imprime os comandos e as respostas intermediárias é o seguinte:

#!/usr/bin/R --vanilla -q -f
# Programa ...
print(1+1)

#!/usr/bin/R – faz o Linux saber que o programa está escrito na linguagem do software R.

--vanilla – faz o R não salvar, nem restaurar, o espaço de trabalho.

-q – faz o R não imprimir a versão

-f – indica que o R deve ler o próprio arquivo sendo executado (./PROGRAMA)

Para explorar mais opções verifique o manual do programa R. Só não se esqueça de deixar a opção -f por último!

man R

Memória de programa AVR/ATmega328P

Sempre que utilizamos strings e arrays constantes em nossos programas, por padrão elas vão parar na memória RAM. Como tempo pouca memória RAM, seria ótimo conseguir colocar isso na memória de programa, liberando a preciosa RAM para as variáveis.

Neste post vemos como fazer isso nos microcontroladores AVR, como o ATmega328P do Arduino Uno.

Continue lendo “Memória de programa AVR/ATmega328P”

Reduzindo o programa AVR/ATmega328P

O seu programa está grande demais? Muito lento para gravar o microcontrolador? Não cabe na memória? Vamos reduzir o programa!

Há alguns truques simples para reduzir o tamanho dos programas e, se não está utilizando todos, as chances são que seu executável está maior do que o necessário.

Vejamos como podemos reduzir o tamanho do programa gerado pelo compilador.

Continue lendo “Reduzindo o programa AVR/ATmega328P”

Compilando código C/C++ com Makefile

Neste post mostramos como criar um Makefile para realizar a compilação de programas C/C++.

Makefiles são muito bons pra automatizar a execução de comandos, evitando ter que digitá-los toda vez.

Também gerenciam dependências entre arquivos, recompilando apenas o que é necessário.

Continue lendo “Compilando código C/C++ com Makefile”

TDD: Testando código C/C++ com Gcov

No post anterior (TDD: Testando código C/C++ com Boost.Test), explicamos como se cria uma suíte de testes com a biblioteca Boost.Test. Muito útil para testar a funcionalidade correta do código.

Neste post mostramos como utilizar o Gcov para verificar se todo o código é executado pelos testes. Criamos uma biblioteca simples e um conjunto de testes para ela.

Ferramentas de code coverage (cobertura de código) como Gcov são muito utilizados para “Desenvolvimento a partir de testes” (TDD – Test Driven Development).

No TDD desenvolvemos os códigos e seus testes em paralelo, para verificar que o código funciona e, no futuro, poder verificar se alguma mudança no código tenha causado um bug.

A análise da cobertura de código auxilia no TDD, identificando partes do código que não estão sendo testadas por completo.

Continue lendo “TDD: Testando código C/C++ com Gcov”

TDD: Testando código C/C++ com Boost.Test

Neste post mostramos como utilizar a biblioteca Boost.Test para testar seus códigos. Podemos compilar a biblioteca junto aos testes, sendo também possível utilizar uma versão pré-compilada para melhorar o tempo de compilação.

Bibliotecas de teste são muito utilizados para “Desenvolvimento a partir de testes” (TDD – Test Driven Development).

No TDD desenvolvemos os códigos e seus testes em paralelo, para verificar que o código funciona e, mais importante, no futuro poder facilmente verificar se alguma mudança no código tenha causado um bug.

Continue lendo “TDD: Testando código C/C++ com Boost.Test”

initramfs e fsck: Ubuntu Linux não inicia

O Ubuntu Linux não inicia e aparece um tal de initramfs! O que fazer?

Um computador meu estava parado por uns tempos, estava com algum problema. Travava, reiniciava do nada… De repente não ligava mais.

Então resolvi reviver ele: Levei na manutenção, deram um jeito nele e fizeram ele iniciar. Bastava remover um dos pentes de memória RAM, que estava com problemas. Agora ele liga e a tela do bootloader do Ubuntu Linux aparece.

Terminal com initramfs

Mas quando tentamos iniciar o sistema, em vez da interface gráfica, aparece o terminal: uma tela preta com algumas linhas escritas, aguardando algum comando:

(initramfs) _

No meio do texto temos escrito:
“The root filesystem on /dev/sda2 requires a manual fsck

Tradução livre:
“A raiz do sistema de arquivos em /dev/sda2 requer um fsck manual”

FSCK (File System ChecK) é uma ferramenta que chega e corrige o sistema de arquivos.

Depois de tantos travamentos e reinicializações inesperadas causadas pelo pente de RAM defeituoso, o sistema de arquivos ficou corrompido. O bootloader está pedindo para manualmente executarmos a verificação do sistema de arquivos.

Como corrigir

Para fazer isso executamos o seguinte comando:

fsck -C -V /dev/sda2

Um simples “fsck /dev/sda2” já resolveria, mas queremos ver o progresso (-C) e ver as explicações do que está sendo feito (-V), então adicionamos essas duas opções. Para ver as opções digite “fsck –help”.

Durante a execução do comando, algumas vezes (ou muitas vezes se o bicho estiver feio) aparece uma mensagem, aguardando interação, perguntando se alguns arquivos podem ser apagados, pois estão com algum defeito, não possuem referência ou alguma outra coisa. Basta apertar ENTER para confirmar e ele será apagado.

Coloque um peso na tecla caso se incomode em apertar ENTER muitas vezes.

Depois de algum tempo… O programa termina e basta reiniciar o computador com o comando

reboot

E agora?

O sistema provavelmente vai iniciar normalmente. Recomendo fazer um backup dos seus dados imediatamente e caso acontecer novamente também reinstalar o sistema.

Se ainda assim não iniciar, você vai ter que usar uma “versão live” do Ubuntu Linux para fazer um backup dos seus dados e então reinstalar o sistema.

Se você tem este problema, do Ubuntu Linux não iniciar e mostrar a tela do intramfs, esse post vai ajudar a solucionar.

Calculadoras e coordenadas polares

Algo que poucas pessoas sabem é que algumas calculadoras científicas possuem a função de converter coordenadas polares em coordenadas retangulares.

Isso é muito útil quando convertendo números complexos entre coordenadas polares e retangulares!

Também para agilizar cálculos do teorema de Pitágoras!

Esta é uma funcionalidade bastante obscura que algumas calculadoras possuem. Mas muito acessível e fácil d usar.

Como exemplo vamos utilizar a calculadora HP 9s. Veja na esquerda os botões [a] e [b] e, em acima deles, as segundas funções R→P e P→R.

Calculadora HP 9s pode converter de coordenadas polares para coordenadas retangulares
Calculadora HP 9s pode converter de coordenadas polares para coordenadas retangulares

Continue lendo “Calculadoras e coordenadas polares”

Calculadoras e números complexos

Algo que poucas pessoas sabem é que algumas calculadoras científicas possuem um modo complexo. Não complexo no sentido de “difícil de usar”, mas no sentido de “usando Números Complexos”.

Esta é uma funcionalidade bastante obscura que algumas calculadoras possuem. Não é muito intuitiva mas facilita muito para quem utiliza números complexos o tempo todo.

Como exemplo vamos utilizar a calculadora HP 9s. Na esquerda, dê uma boa olhada logo abaixo da tecla [2ndF] (segunda função), está escrito CPLX: o Modo Complexo!

A Calculadora HP 9s pode calcular com Números Complexos
A Calculadora HP 9s pode calcular com Números Complexos

Continue lendo “Calculadoras e números complexos”