Skip to content

Formataçõs/LaTeX

Eu procurei seguir ao máximo o guia de estilo do sistema métrico, que, aliás, recomendo a todos que leiam antes de elaborarem seus relatórios. É um material bem explicado e bastante útil. Caso encontrem alguma violação desse estilo, por favor, abram uma issue no repositório para me avisar.

Ordem de Grandeza

Por padrão, as medidas serão formatadas seguindo a notação científica, ou seja, a ordem de grandeza será ajustada para que o valor nominal esteja entre 1 e 10. Na maioria dos casos, esse é o comportamento desejado, mas, em algumas situações, podemos querer representar valores como dezenas ou centenas de vezes uma unidade (acima disso, recomenda-se alterar a unidade). Para isso, passe a ordem de grandeza desejada no argumento expoente de fmt.

    comprimento_de_onda = lab.Medida(500, "nm", 1)
    assert comprimento_de_onda.fmt() == "(5,00 ± 0,01) × 10² nm"
    assert comprimento_de_onda.fmt(expoente=0) == "(500 ± 1) nm"
    assert comprimento_de_onda.fmt(expoente=3) == "(0,500 ± 0,001) × 10³ nm"
    massa = lab.Medida(5, "tons", 0.1)
    assert massa.fmt(expoente=-1) == "(50 ± 1) × 10⁻¹ ton"

Unidades

Já abordamos um pouco sobre unidades na seção de introdução. Basicamente, o projeto utiliza a biblioteca pint para realizar as conversões. Caso desejem saber mais sobre as unidades suportadas e como formatá-las, sugiro que consultem a documentação do Pint. Uma funcionalidade adicional é passar unidade="si" para exibir uma medida no Sistema Internacional (SI).

De modo geral, é extremamente raro encontrar uma unidade que o Pint não suporte ou não consiga interpretar. Porém, um detalhe importante é que o Pint é uma biblioteca desenvolvida em inglês. Assim, se você optar por escrever unidades por extenso (embora eu pessoalmente prefira as abreviações), ele não reconhecerá metro, mas sim meter.

    assert imc.fmt() == "(2,45 ± 0,03) × 10⁻³ kg/cm²"
    assert imc.fmt(unidade="kg/m²") == "(2,45 ± 0,03) × 10 kg/m²"
    assert imc.fmt(unidade="g/cm²") == "(2,45 ± 0,03) g/cm²"
    assert imc.fmt(unidade="si") == "(2,45 ± 0,03) × 10 kg/m²"

LaTeX

Ao passar latex=True para fmt, o resultado será gerado no formato LaTeX. Embora não seja agradável para leitura humana, será muito útil para o seu Overleaf ou TexLive.

    assert gravidade.fmt(unidade="si") == "(9,73 ± 0,07) m/s²"
    assert gravidade.fmt(unidade="si", latex=True) == r"(9,73 \, \pm \, 0,07) \, \frac{\mathrm{m}}{\mathrm{s}^{2}}"

Para os curiosos, o renderizado fica assim:

Combinando Formatações

As opções podem ser combinadas usando argumentos nomeados na mesma chamada de fmt.

    g = lab.Medida(9.8, "m/s²", 0.1)
    assert g.fmt(expoente=2) == "(0,098 ± 0,001) × 10² m/s²"
    assert g.fmt(expoente=2, latex=True) == r"(0,098 \, \pm \, 0,001)\times 10^{2} \, \frac{\mathrm{m}}{\mathrm{s}^{2}}"
    assert g.fmt(unidade="cm/s²", expoente=2, latex=True) == r"(9,8 \, \pm \, 0,1)\times 10^{2} \, \frac{\mathrm{cm}}{\mathrm{s}^{2}}"