是否有一个sympy默认文件,比如matplotlib有〜/ matplotlib / .matplotlibrc?

时间:2013-11-16 09:01:15

标签: python matrix default sympy

是否有sympy默认文件,例如matplotlib~/matplotlib/.matplotlibrc

目前,以下代码的默认LaTeX输出使用的smallmatrix太小了:

>>> mat = Matrix([[0 1], [1 0]])
>>> latex(mat)
\left[\begin{smallmatrix} ...

我希望默认情况下使用matrix。现在,我这样做:

>>> latex(mat, mat_str='matrix')
\left[\begin{matrix} ...

我希望能够设置默认值而无需使用mat_str='matrix'

2 个答案:

答案 0 :(得分:1)

您可以随时将自己的小包装编写到latex

def latex(*args, **kwargs):
    kwargs.setdefault('mat_str', 'matrix')
    sympy.latex(*args, **kwargs)

如果您想更改init_printing的行为,则会有open issue

答案 1 :(得分:0)

看起来不像sympy会读取任何默认文件。矩阵类型在/sympy/printing/latex.py中进行了硬编码,并带有以下注释:

  

mat_str:要发出的矩阵环境字符串。 “小矩阵”,“矩阵”,   “array”等。默认为“smallmatrix”为内联模式,“matrix”为   矩阵不超过10列,否则为“数组”。

您可以通过修改以下片段(当前位于第1169行)来更改受硬编码的默认值:

mat_str = self._settings['mat_str']
        if mat_str is None:
            if self._settings['mode'] == 'inline':
                mat_str = 'smallmatrix'
            else:
                if (expr.cols <= 10) is True:
                    mat_str = 'matrix'
                else:
                    mat_str = 'array'

只需将'smallmatrix'替换为'matrix',如果需要覆盖它,请使用mat_str参数。