texpy

Funzioni utili per lab3


License
MIT
Install
pip install texpy==1.0.3

Documentation

TexPy

Descrizione rapida della libreria

Questa libreria e' stata creata da studenti del corso di Laboratorio 3 dell'universita' di Pisa per velocizzare la stesura delle relazioni, contiene funzioni che potrebbero risultare utili pure a corsi come Laboratorio 1 e 2
In particolare queste funzioni permettono di stampare una tabella in LaTeX senza dover riscrivere tutti i dati tra $ ed &

Ad esempio creiamo una tabella con misure ed errori:

import texpy as tp
import numpy as np
x = np.linspace(1, 2, 10) # Genero dei dati
y = 5*x
dx, dy = x*0.01, y*0.01 # Suppongo che l'errore sia l'1% della misura
misure = [x, y] # Creo la matrice con i valori
errori_misure = [dx, dy] # Creo la matrice con gli errori
tab = tp.ne(misure, errori_misure) # Crea una matrice del tipo misura +- errore come spiegato sotto
tp.mat(tab) # Stampa la matrice, ovvero la tabella in latex

Output:

Copia tutto quello che c'e' tra le linee

--------------------------
\begin{tabular}{cc}
	\hline
	% Qua mettici il titolo, ricordati di mettere le \\ alla fine % 
	\hline
	$1.00 \pm 0.01$ & $5.00 \pm 0.05$ \\
	$1.11 \pm 0.01$ & $5.56 \pm 0.06$ \\
	$1.22 \pm 0.01$ & $6.11 \pm 0.06$ \\
	$1.33 \pm 0.01$ & $6.67 \pm 0.07$ \\
	$1.44 \pm 0.01$ & $7.22 \pm 0.07$ \\
	$1.56 \pm 0.02$ & $7.78 \pm 0.08$ \\
	$1.67 \pm 0.02$ & $8.33 \pm 0.08$ \\
	$1.78 \pm 0.02$ & $8.89 \pm 0.09$ \\
	$1.89 \pm 0.02$ & $9.44 \pm 0.09$ \\
	$2.00 \pm 0.02$ & $(1.00 \pm 0.01) \times 10^{1}$ \\
	\hline
\end{tabular}

--------------------------

Installazione

Scrivere su terminale pip install texpy

Descrizione dettagliata delle funzioni

Tutte le funzioni sono vettorizzate, ovvero possono prendere in input numeri, vettori, matrici, tensori ecc... e li trattano secondo le regole di numpy, per maggiori informazioni: numpy broadcasting
In pratica puoi dare anche array alle funzioni e queste fanno quello che ci aspetta

Notazione scientifica con errore

ne(x, dx, unit=None) Ritorna una stringa in latex con il valore x e l'errore ovvero "x \pm dx" Parametri:

  • x: valore della misura
  • dx: errore della misura
  • unit: Opzionale, serve per impostare l'unità di misura di x
# Es: misuro x=45.890 +- 135
>>> import texpy as tp
>>> tp.ne(45890,135)
'$(4.59 \\pm 0.01) \\times 10^{4}$'

>>> tp.ne(67.5, 1.6, unit="kg") # Il parametro unit imposta l'unità in chili
'$68 \\pm 2$kg'

>>> tp.ne(65000, 300, "V") # Se l'ordine di grandezza di x risulta multiplo di 3 la funzione
'$65.0 \\pm 0.3$kV'        # aggiunge automaticamente il prefisso del SI adatto: 65000 V = 65 kV

Tabella per latex

mat(Matrice, titolo=None, file=None) Stampa su terminale una matrice fatta di stringhe in formato latex

  • Matrice: matrice fatta di stringhe contenente i valori da stampare
  • titolo: Opzionale, il titolo della tabella
  • file: Opzionale, file in cui la matrice viene stampata (ATTENZIONE SOVRASCRIVE IL FILE!)
# Esempio:
>>> import texpy as tp
>>> M = [['guardati', 'l\'attacco'],
        ['dei', 'giganti']]
>>> tp.mat(M, 'titolo & a caso')

Output:

Copia tutto quello che c'è tra le linee
 --------------------------
 \begin{tabular}{cc}
 \hline
	titolo & a caso\\ 
 \hline
	guardati & l'attacco \\
	dei & giganti \\
 \hline
 \end{tabular}
--------------------------

Se avessi scritto tp.mat(M, 'titolo & a caso', file="myfile.txt") l'output sopra sarebbe stato scritto nel file myfile.txt

Notazione scientifica con valore ed errore separati

nes(x, dx=None, unit=None) Ritorna due stringe, una col valore e l'altro con l'errore fatte in modo che abbiano lo stesso ordine di grandezza, in pratica è come la prima funzione ma valore ed errore sono in due stringhe diverse

  • x: valore della misura
  • dx: Opzionale, errore della misura
  • unit: Opzionale, serve per impostare l'unità di misura di x
# Es: misuro x = 45.890 +- 135
>>> tp.nes(45897,135)
(array('$4.59 \\times 10^{4}$', dtype='<U20'),
 array('$0.01 \\times 10^{4}$', dtype='<U20'))

# Es: voglio solo il valore di x = 45.890
>>> tp.nes(45890)
array('$4.59 \\times 10^{4}$', dtype='<U20')

>>> tp.ne(6750, 16, unit="g") # Il parametro unit imposta l'unità di misura
(array('$6.75$kg', dtype='<U8'), array('$0.02$kg', dtype='<U8'))

Notazione scientifica

ns(n, nrif=None, nult=None, unit=None) Funzione della notazione scientifica di un singolo numero con un numero di riferimento nrif scritto in latex. I parametri sono:

  • n: numero da portare in notazione scientifica
  • nrif: Opzionale, serve a specificare l'ordine di grandezza del numero prima della virgola, ovvero dove mettere la virgola, se non specificato assume il valore di n
  • nult: Opzionale, serve a specificare l'ordine di grandezza della cifra meno significativa, ovvero serve a dire quante cifre scrivere dopo la virgola
  • unit: Serve a impostare l'unità di misura di n

Nota: Viene preso l'ordine di grandezza di nrif e nult

# Es: Porto in notazione scientifica 45.890
>>> import texpy as tp
>>> tp.ns(45890)
'$4.59 \\times 10^{4}$'

# Es: Porto in notazione scientifica 45.890 con l'ordine di grandezza di 135
>>> tp.ns(45890, 135)
'$459 \\times 10^{2}$'

# Es: Porto in notazione scientifica 45.890 con l'ordine di grandezza di 135 e
# scrivo i numeri dopo la virgola fino all'ordine di grandezza di 3
>>> tp.ns(45890, 135, 3)
'$459.90 \\times 10^{2}$'

>>> tp.ns(45890, 135, 3, "F") # Il parametro unit imposta l'unità di misura
'$45890$F'
>>> tp.ns(45890, 1000, 3, "F") # la funzione automaticamente converte 45.890 * 10^3 F = 45.890 kF  
'$45.890$kF'