# SLiCAPlatex.py

SLiCAP formatterfor generating snippets that can be stored as LaTeX files and included in other LaTeX files.

class LaTeXformatter

  Latex formatter. The methods return LaTeX snippets.

  Example:

      >>> import SLiCAP as sl
      >>> sl.initProject("formatter")
      >>> ltx = sl.LaTeXformatter()   # Creates an instance of a LaTeX formatter

  coeffsTransfer(transferCoeffs, label='', caption='', color='myyellow')

    Creates a tablestable that displays the numerator and denominator coefficients of a rational expression. If no label AND no caption are given this method returns a LaTeX tabular snippet. Else it returns a table snippet.

    Parameters:

      - stepVars (list) – List with step variables (str, sympy.Symbol).

      - stepArray (List) – List with lists with step values for each step variable

      - label (str) – Reference label for the table. Defaults to an empty string.

      - caption (str) – Table caption.

      - color (str) – Alternate row color name, should be defined in ‘preambuleSLiCAP.tex’ defaults to ‘myyellow’. Use None for no background color.

    Returns:

      SLiCAP Snippet object

    Return type:

      SLiCAP.SLiCAPprotos.Snippet

    Example:

        >>> import SLiCAP as sl
        >>> import sympy as sp
        >>>
        >>> ltx  = sl.LaTeXformatter()
        >>> expr = sp.sympify("A_0*(1+s*b_1)/(((1+s*a_1))*((1+s*a_2)))")
        >>> tr_coeffs = sl.coeffsTransfer(expr)
        >>> ltx.coeffsTransfer(tr_coeffs,
                               label="tab-coeffs",
                               caption = "numerator and denominator " +
                               "coefficients").save("coeffs")

  dcvarContribs(resultObject, label='', caption='', color='myyellow')

    Creates a table with results of dcvar analysis stored in resultObject. If no label AND no caption are given this method returns a LaTeX tabular snippet. Else it returns a table snippet.

    Parameters:

      - resultObject (SLiCAP.SLiCAPinstruction.instruction) – SLiCAP circuit object that comprises the circuit data to be listed.

      - label (str) – Reference label for the table. Defaults to an empty string.

      - caption (str) – Text that will used as table caption(s).

      - color (str) – Alternate row color name, should be defined in ‘preambuleSLiCAP.tex’ defaults to ‘myyellow’. Use None for no background color.

    Returns:

      SLiCAP Snippet object

    Return type:

      SLiCAP.SLiCAPprotos.Snippet

  dictTable(dct, head=None, label='', caption='', color='myyellow')

    Creates a table from a dictionary; optionally with a header. If no label AND no caption are given this method returns a LaTeX tabular snippet. Else it returns a table snippet.

    Parameters:

      - dct – Dictionary with key-value pairs.

      - head (list) – List with names for the key column and the value column, respectively. List items will be converted to string.

      - label (str) – Reference label for the table. Defaults to an empty string.

      - caption (str) – Text that will used as table caption.

      - color (str) – Alternate row color name, should be defined in ‘preambuleSLiCAP.tex’ defaults to ‘myyellow’. Use None for no background color.

    Returns:

      SLiCAP Snippet object

    Return type:

      SLiCAP.SLiCAPprotos.Snippet

    Example:

        >>> import SLiCAP as sl
        >>>
        >>> sl.initProject("Documentation")
        >>> ltx = sl.LaTeXformatter()
        >>> header = ["name", "age"]
        >>> data   = {"John": 89, Mary: 104}
        >>> ltx.dictTable(data, head=header, caption="Some of my friends").save("friends")

  elementData(circuitObject, label='', caption='', color='myyellow')

    Creates a table with data of expanded netlist elements of circuitObject. If no label AND no caption are given this method returns a LaTeX tabular snippet. Else it returns a table snippet.

    Parameters:

      - circuitObject (SLiCAP.SLiCAPprotos.circuit) – SLiCAP circuit object that comprises the circuit data to be listed.

      - label (str) – Reference label for the table. Defaults to an empty string.

      - caption (str) – Text that will used as table caption.

      - color (str) – Alternate row color name, should be defined in ‘preambuleSLiCAP.tex’ defaults to ‘myyellow’. Use None for no background color.

    Returns:

      SLiCAP Snippet object

    Return type:

      SLiCAP.SLiCAPprotos.Snippet

  eqn(LHS, RHS, units='', label='', multiline=False)

    Creates a displayed (numbered) equation.

    Parameters:

      - LHS (str, sympy.Symbol, sympy.Expr) – Left hand side of the equation.

      - RHS (sympy.Symbol, sympy.Expr) – Right hand side of the equation.

      - units (str) – Units

      - label (str) – Reference label for the table. Defaults to an empty string.

      - multiline (int, Bool) – n breaks the equation over multiple lines with n sums or products per line

    Returns:

      SLiCAP Snippet object

    Return type:

      SLiCAP.SLiCAPprotos.Snippet

    Example:

        >>> import SLiCAP as sl
        >>> import sympy as sp
        >>>
        >>> ltx = sl.LaTeXformatter()
        >>> lhs = sp.sympify("e^(1j*pi)")
        >>> rhs = sp.N(-1)
        >>> ltx.eqn(lhs, rhs, label="nice_eqn").save("nice_eqn")

  eqnInline(LHS, RHS, units='')

    Creates in inline equation. If format=’rst’, this equation is stored (name = equation) in the file ‘substitutions.rst’. The location of this file is given in the file:

    SLiCAP.ini -> [projectpaths] -> rst_snippets

    Parameters:

      - LHS (sympy.Expr, str) – Left hand side of the equation

      - RHS (sympy.Expr) – Right hand side of the equation

      - units (str) – Units

  expr(expr, units='')

    Creates in inline expression. If format=’rst’, this expression is stored (name = expr) in the file ‘substitutions.rst’. The location of this file is given in the file:

    SLiCAP.ini -> [projectpaths] -> rst_snippets

    Parameters:

      - expr – Expression

      - units (str) – Units

  file(fileName, lineRange=None, firstNumber=None, language=None, style=None)

    Creates a LaTeX input{} command for literally displaying a file.

    Parameters:

      - fileName (str) – Name of the file. Path is absolute or relative to the project directory

      - lineRange (str) – range of lines to be included

      - firstNumber (str) – start number of the displayed line numbers

      - language (str) –

        SLiCAP built-in languages:

        - ltspice

      - style (str) –

        SLiCAP built-in styles:

        - slicap

        - latex

    Returns:

      SLiCAP Snippet object

    Return type:

      SLiCAP.SLiCAPprotos.Snippet

  matrixEqn(Iv, M, Dv, label='')

    Creates a displayed matrix equation without evaluating it.

    Parameters:

      - Iv (sympy.Matrix) – Left hand side of the equation: vector with independent variables

      - M (sympy.Matrix) – Right hand side of the equation: matrix

      - Dv (sympy.Matrix) – Righthand side of the equation: vector with dependent variables

      - label (str) – Reference label for the table. Defaults to an empty string.

    Returns:

      SLiCAP Snippet object

    Return type:

      SLiCAP.SLiCAPprotos.Snippet

  nestedLists(headerList, linesList, unitpos=None, caption='', label='', color='myyellow')

    Creates and returns a LaTeX table snippet that can be included in a LaTeX document. Each list is converted into a table row and must have equal lengths. There can be one column with units.

    A label can be given as reference and a caption can be added.

    Parameters:

      - headerList (list with strings) – List with column headers.

      - linesList (list) – List with lists of table data for each table row

      - unitpos (int, str) – Position of column with units (will be typesetted with mathrm)

      - caption (str) – Table caption, defauls to ‘’

      - label (str) – Table reference label

      - color (str) – Alternate row color name, should be defined in ‘preambuleSLiCAP.tex’ defaults to ‘myyellow’. Use None for no background color.

    Returns:

      LaTeX snippet to be included in a LaTeX document

    Return type:

      str

  netlist(netlistFile, lineRange=None, firstNumber=None)

    Creates a LaTeX input{} or an RST ‘.. literalinclude:: ‘ command for including a netlist file.

    Parameters:

      - netlistFile (str) – Name of the netlist file relative to the project circuit directory

      - lineRange (str) – range of lines to be included

      - firstNumber (str) – start number of the displayed line numbers

    Returns:

      SLiCAP Snippet object

    Return type:

      SLiCAP.SLiCAPprotos.Snippet

    Example:

      latex

        >>> import SLiCAP as sl
        >>> ltx = sl.LaTeXformatter() # Creates a LaTeX formatter
        >>> latex_netlist = ltx.netlist("myFirstRCnetwork.cir")
        >>> latex_netlist.save("netlist")

    This will save a file netlist.tex in the sl.ini.tex_snippets folder with the following contents:

        \textbf{Netlist: myFirstRCnetwork.cir}
        \lstinputlisting[language=ltspice, numbers=left]{<full path to myFirstRCnetwork.cir>}

    The netlist file is assumed to reside in the folder given by sl.ini.cir_path. If you want to include a file from any other location, use:

        >>> ltx.file()

  noiseContribs(resultObject, label='', caption='', color='myyellow')

    Creates a table with results of noise analysis stored in resultObject. If no label AND no caption are given this method returns a LaTeX tabular snippet. Else it returns a table snippet.

    Parameters:

      - resultObject (SLiCAP.SLiCAPinstruction.instruction) – SLiCAP circuit object that comprises the circuit data to be listed.

      - label (str) – Reference label for the table. Defaults to an empty string.

      - caption (str) – Text that will used as table caption(s).

      - color (str) – Alternate row color name, should be defined in ‘preambuleSLiCAP.tex’ defaults to ‘myyellow’. Use None for no background color.

    Returns:

      SLiCAP Snippet object

    Return type:

      SLiCAP.SLiCAPprotos.Snippet

  parDefs(circuitObject, label='', caption='', color='myyellow')

    Creates a table with parameter definitions of circuitObject. If no label AND no caption are given this method returns a LaTeX tabular snippet. Else it returns a table snippet.

    Parameters:

      - circuitObject (SLiCAP.SLiCAPprotos.circuit) – SLiCAP circuit object that comprises the circuit data to be listed.

      - label (str) – Reference label for the table. Defaults to an empty string.

      - caption (str) – Text that will used as table caption.

      - color (str) – Alternate row color name, should be defined in ‘preambuleSLiCAP.tex’ defaults to ‘myyellow’. Use None for no background color.

    Returns:

      SLiCAP Snippet object

    Return type:

      SLiCAP.SLiCAPprotos.Snippet

  params(circuitObject, label='', caption='', color='myyellow')

    Creates a table with undefined parameters of circuitObject. If no label AND no caption are given this method returns a LaTeX tabular snippet. Else it returns a table snippet.

    Parameters:

      - circuitObject (SLiCAP.SLiCAPprotos.circuit) – SLiCAP circuit object that comprises the circuit data to be listed.

      - label (str) – Reference label for the table. Defaults to an empty string.

      - caption (str) – Text that will used as table caption.

      - color (str) – Alternate row color name, should be defined in ‘preambuleSLiCAP.tex’ defaults to ‘myyellow’. Use None for no background color.

    Returns:

      SLiCAP Snippet object

    Return type:

      SLiCAP.SLiCAPprotos.Snippet

  pz(resultObject, label='', caption='', color='myyellow')

    Creates a table or tables with results of pole/zero analysis stored in resultObject. If no label AND no caption are given this method returns a LaTeX tabular snippet. Else it returns a table snippet.

    Parameters:

      - resultObject (SLiCAP.SLiCAPinstruction.instruction) – SLiCAP circuit object that comprises the circuit data to be listed.

      - label (str) – Reference label for the table. Defaults to an empty string.

      - caption (str) – Text that will used as table caption(s).

      - color (str) – Alternate row color name, should be defined in ‘preambuleSLiCAP.tex’ defaults to ‘myyellow’. Use None for no background color.

    Returns:

      SLiCAP Snippet object

    Return type:

      SLiCAP.SLiCAPprotos.Snippet

  specs(specs, specType, label='', caption='', color='myyellow')

    Creates a table with specifications of type specType. If no label AND no caption are given this method returns a LaTeX tabular snippet. Else it returns a table snippet.

    Parameters:

      - specs (list) – List with SLiCAP.SLiCAPdesignData.specItem objects.

      - label (str) – Reference label for the table. Defaults to an empty string.

      - caption (str) – Table caption.

      - color (str) – Alternate row color name, should be defined in ‘preambuleSLiCAP.tex’ defaults to ‘myyellow’. Use None for no background color.

    Returns:

      SLiCAP Snippet object

    Return type:

      SLiCAP.SLiCAPprotos.Snippet

  stepArray(stepVars, stepArray, label='', caption='', color='myyellow')

    Creates a table with step array values. If no label AND no caption are given this method returns a LaTeX tabular snippet. Else it returns a table snippet.

    Parameters:

      - stepVars (list) – List with step variables (str, sympy.Symbol).

      - stepArray (List) – List with lists with step values for each step variable

      - label (str) – Reference label for the table. Defaults to an empty string.

      - caption (str) – Table caption.

      - color (str) – Alternate row color name, should be defined in ‘preambuleSLiCAP.tex’ defaults to ‘myyellow’. Use None for no background color.

    Returns:

      SLiCAP Snippet object

    Return type:

      SLiCAP.SLiCAPprotos.Snippet

sub2rm(textext)

  Converts italic fonts LaTeX subscripts into mathrm fonts.

  Parameters:

    textext – LaTeX snippet

  Returns:

    Modified LaTeX snippet

  Return type:

    str

  Example:

      >>> textext = "\frac{V_{out}}{V_{in}}"
      >>> print(sub2rm(textext))
      \frac{V_{\mathrm{out}}}{V_{\mathrm{in}}}