Source code for smpl.latex.latex

import numpy as np


[docs]def si(s, u:str="", fmt:str="{}"): """ Get number with uncertainty and unit in ``si`` format for latex. Parameters ---------- s : ufloat number to be returned in a latex compatible format. u : str unit of that number. fmt : str format string for the numbers. Returns ------- str latex SI string of the number with it's uncertainty and unit. Examples -------- >>> import uncertainties as unc >>> from smpl import io >>> si(unc.ufloat(2000,0.1)) '\\\\SI{2000.00+-0.10}{}' >>> si(unc.ufloat(2000,0.1),"\\meter") '\\\\SI{2000.00+-0.10}{\\\\meter}' >>> si(unc.ufloat(2000,0.1),"\\meter", io.gf(2)) '\\\\SI{2.0+-0.0e+03}{\\\\meter}' """ return "\\SI{%s}{%s}" % ((fmt.format(s)).replace("/", "").replace("(", "").replace(")", ""), u)
[docs]def si_line(a, skip:int=0, fmt:str="{}"): """ Get array ``a`` in the format of a line of a latex table. Examples -------- >>> si_line([1,2,3,]) '\\\\SI{1}{}&\\\\SI{2}{}&\\\\SI{3}{}\\\\\\\\\\n' """ return si_tab(np.transpose([[t] for t in a]), skip, fmt)
[docs]def si_ttab(tab, skip:int=0, fmt:str="{}"): """ Transposed :func:`si_tab`. Parameters ---------- tab : array_like Array containing the values of the table skip : number Skip this many table lines fmt : str format string for the numbers Returns ------- tabstr : str table latex string Examples -------- >>> si_ttab([[1,2],[3,4]]) '\\\\SI{1}{}&\\\\SI{3}{}\\\\\\\\\\n\\\\SI{2}{}&\\\\SI{4}{}\\\\\\\\\\n' """ return si_tab(np.transpose(tab), skip, fmt)
[docs]def si_tab(tab, skip=0, fmt="{}"): """ Get arrays of (uncertainty) numbers in a latex table compatible form. Parameters ---------- tab : array_like Array containing the values of the table skip : number Skip this many table lines fmt : str format string for the numbers Returns ------- str Examples -------- >>> si_tab([[1,2],[3,4]]) '\\\\SI{1}{}&\\\\SI{2}{}\\\\\\\\\\n\\\\SI{3}{}&\\\\SI{4}{}\\\\\\\\\\n' """ # mkdirs(fn) #file = open(fn,"w") s = "" for _, ti in enumerate(tab): for j, tij in enumerate(ti): if(j != 0): s += "&" if(j >= skip): s += si(tij, fmt=fmt) else: s += "%s" % (tij) s += "\\\\\n" return s