修改 Sage 中代码的 LaTeX 转录
Modify LaTeX transcription of code in Sage
我想修改 Sage 中的函数 latex()
:有没有办法选择如何在 TeX 中翻译符号列表?在我的特殊情况下,我希望使用 'matrix' 而不是 array
对矩阵进行编码,更好的是,在乳胶中使用个性化宏,允许在 displaystyle 中拥有矩阵的条目。
对此有两个答案。一种类型的定制很容易并记录在案,例如如果你这样做
latex.matrix_delimiters?
文档为您提供
sage: a = matrix(1, 1, [17])
sage: latex.matrix_delimiters("[", "]")
sage: latex(a)
\left[\begin{array}{r}
17
\end{array}\right]
有一个类似的latex.matrix_column_alignment()
地方可以设置这个。
然而,尽管 latex.add_macro()
允许添加各种类型的额外宏,但它对矩阵没有帮助,因为它们已经具有 _latex_()
方法。参见 src/sage/matrix/matrix0.pyx
。但是您可以(原则上)将最后一行更改为您想要的任何内容。
return "\left" + matrix_delimiters[0] + "\begin{array}{%s}\n"%format + s + "\n\end{array}\right" + matrix_delimiters[1]
或者甚至可以根据您的喜好以自定义方式修改其余代码。或者,您也可以想出一种方法让每个人都可以自定义并在 Trac 上提交它 - 也许 latex.matrix_type()
可以在 \matrix
、\pmatrix
、[= 之间进行选择20=],还有朋友。
不过,我不完全理解你在上一条评论中提出的建议,以提出一个概念化的好方法。
我想修改 Sage 中的函数 latex()
:有没有办法选择如何在 TeX 中翻译符号列表?在我的特殊情况下,我希望使用 'matrix' 而不是 array
对矩阵进行编码,更好的是,在乳胶中使用个性化宏,允许在 displaystyle 中拥有矩阵的条目。
对此有两个答案。一种类型的定制很容易并记录在案,例如如果你这样做
latex.matrix_delimiters?
文档为您提供
sage: a = matrix(1, 1, [17])
sage: latex.matrix_delimiters("[", "]")
sage: latex(a)
\left[\begin{array}{r}
17
\end{array}\right]
有一个类似的latex.matrix_column_alignment()
地方可以设置这个。
然而,尽管 latex.add_macro()
允许添加各种类型的额外宏,但它对矩阵没有帮助,因为它们已经具有 _latex_()
方法。参见 src/sage/matrix/matrix0.pyx
。但是您可以(原则上)将最后一行更改为您想要的任何内容。
return "\left" + matrix_delimiters[0] + "\begin{array}{%s}\n"%format + s + "\n\end{array}\right" + matrix_delimiters[1]
或者甚至可以根据您的喜好以自定义方式修改其余代码。或者,您也可以想出一种方法让每个人都可以自定义并在 Trac 上提交它 - 也许 latex.matrix_type()
可以在 \matrix
、\pmatrix
、[= 之间进行选择20=],还有朋友。
不过,我不完全理解你在上一条评论中提出的建议,以提出一个概念化的好方法。