- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我能否在 ipython 笔记本中获得 sympy 几何代数对象的漂亮 latex 风格打印?
在ipython
笔记本,我可以从 sympy
得到各种数学对象的 pretty-print .例如,如果我的 sympy
变量是希腊字符,输出像 latex 一样漂亮。 (大概使用 MathJax...)一个明确的例子:
from sympy import symbols, init_printing
init_printing(use_latex=True)
alpha = symbols('alpha')
alpha**2/3
输出是一个很好地显示的分数 à la latex,具有正确放置的上标和真正的 alpha。完美。
但我也用几何代数模块做了很多工作 sympy.galgebra.GA
,我想要类似的结果。显然,有一个不同的打印系统叫做 latex_ex
对于这个模块,当我从命令行运行脚本(如模块页面上的脚本)并让它们输出 dvi 文件时,它似乎确实有效。但我所做的任何事情都无法使 GA 在笔记本中看起来不错。有什么我可以做的吗?
为了具体一点,这里有一个具体的例子:
from sympy.galgebra.GA import *
metric = '1 0 0,0 1 0,0 0 1'
gamma_x,gamma_y,gamma_z = MV.setup('gamma_x gamma_y gamma_z',metric,True)
gamma_x
输出只是repr
的 gamma_x
,这是无用的,例如 <sympy.galgebra.GA.MV at 0x1060b8510>
.同样,调用 print
就给我_1*gamma_x
,这是我要避免的。
在脚本中,我可以在上面添加以下内容:
from sympy.galgebra.latex_ex import LatexPrinter, xdvi
LatexPrinter.format(1,1,1,1)
print gamma_x
xdvi(filename='testGA.tex')
这为我提供了具有漂亮 latex 表达式的预期 DVI。当然,如果我在笔记本中做同样的事情,我绝对不会得到任何打印语句的输出,即使是那些不涉及 GA 对象的语句——实际上什么也没有,不仅仅是不漂亮的东西。
我正在运行 python 2.7.5,sympy 0.7.3,并在 ipython 1.0 下使用笔记本。
由于在工作中进行了各种更改,我不得不进行各种更改。我在 my answer 中收集了一个很好的当前示例.
我实际上得到了一个非常丑陋的 hack 来处理代码的当前发布版本。下面的工作,但我很不满意,所以我希望 Alan 的新版本模块会带来更好的东西。这主要是供引用。但基本思想似乎是 sympy.galgebra.GA.MV._repr_latex_
需要以某种方式定义。任何对 sympy 或 ipython 的工作原理有更深入了解的人都非常欢迎发表评论。
from sympy.galgebra.GA import *
metric = '1 0 0,0 1 0,0 0 1'
gamma_x,gamma_y,gamma_z = MV.setup('{\gamma}_x {\gamma}_y {\gamma}_z',metric,True)
def MVlatex(mv, *args) :
from re import sub
s = str(mv)
s = s.replace('*',r' ')
s = sub(r'(?<![}_a-zA-Z0-9])_1(?![a-zA-Z0-9])', r' ', s)
s = sub(r'__([a-zA-Z0-9]*)', r'^{\1}', s)
s = sub(r'_([a-zA-Z0-9]*)', r'_{\1}', s)
return '$$'+s+'$$'
sympy.galgebra.GA.MV._repr_latex_ = MVlatex
gamma_x
请注意正则表达式的不幸使用,负向后视等。此外,_repr_latex_
有时会得到多个参数。我不知道除了第一个参数之外的任何参数是什么意思,所以我把它们扔掉了。最后,我敢肯定还有很多事情仍然很丑陋;这只是我最初粗略尝试的结果。
最佳答案
我是 GA 模块的作者,我将研究 Ipython latex 问题。我强烈建议您使用具有新版本 GA 的最新版本的 sympy。查看有关如何使用新 GA 的新文档。有几件事发生了变化。尝试以下操作(我不知道它是否有效,因为我自己不使用 Ipython)。对于“格式”语句使用
格式(ipy=True)
看看它是否有效(再次查看新发行版的文档和示例,因为其他内容随着打印和模块的其他方面而发生变化)。我的开发方法是使用“geany”编辑器编写脚本。然后我只需按下编辑器上的运行按钮,观察终端或 latex 的输出。
我对您使用 GA 的目的很感兴趣,并了解您希望在未来的版本中包含哪些内容。如果您想直接与我联系,我的电子邮件是
abrombo@verizon.net
关于ipython - ipython 笔记本中几何代数的良好输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18667274/
我想知道是否可以将简单的位图转换为几何对象 最佳答案 是的,您可以使用跟踪。 Potrace是一个开源的位图到矢量跟踪器库。 然而,位图追踪并不完美。对于高质量的矢量图像,line tracer 一般
这类似于this question,但是却相反。 我有两个地理位置(纬度,经度)A和B。假设它们相距40海里。我想计算在A和B之间的直线上,从A点起10海里处的坐标。数学(我每天使用的其他一些数学),
我想计算一个点到由 2 个点定义的直线的距离。 我正在使用 javascript,这就是我使用维基百科得出的结论:https://en.wikipedia.org/wiki/Distance_from
我对 boost::geomentry 有疑问。 #include #include #include #include int main(){ typedef boost::geometry
我有一个问题。我想将四边形与四边形相交。 int main(){ typedef boost::geometry::model::point_xy TBoostPoint; typedef b
我无法在 OpleGL 中获得正确的转换。 我有 point3D - P(X,Y,Z) 和投影矩阵 M,它等于 K*(R|T) 其中 K - 相机标定矩阵 (R|T)——点(物)坐标系变换(R——旋转
我想做一个凸面(由一些直线或圆弧组成)围绕它的几何中心(Cx,Cy)旋转。同时凸面两侧有两个圆(由半径给出:R 和左中心:(Lx,Cy),右中心:(Rx,Cy))。表示与几何(Cy) X 轴相同的圆心
我有一个 DrawingVisual表示路径的元素,该路径的几何描述由此 syntax : "m106,59.3c0-1.98,0,0-4.95,0.989-3.96,0.989-13.8,3.96-
如何将我自己的数据集转换为可供 pytorch 几何图形神经网络使用的数据集? 所有教程都使用已转换为 pytorch 可用的现有数据集。例如,如果我有自己的点云数据集,我如何使用它来训练图神经网络的
我正在使用 PyQt5 和 OpenCV。我想创建一个读取视频帧并执行橡皮筋拉伸(stretch)以生成几何图形的类,该几何图形将由不同的类用于裁剪视频流(此示例中不包括第二类)。 在此示例中,从网络
我们有两个 (PostgreSQL 9.2) 表。第一城市: loc_id | integer | not null name | character
我有一张 table : create table if not exists places( id bigserial not null constraint places_pkey primary
我在 postgresql 中有一个带有 PostGIS geometry(point, 4326) 列(位置,使用 SRID 4326)的表,我有一个使用 SQL Alchemy 更新表(其余列)的
我开始使用 c++11 并尝试使用 boost geometry 运行一些示例代码 #include #include #include #include BOOST_GEOMETRY_REG
我有一个存储为 csv 文件的数据框,其中一列是多边形对象。但是,此列存储为字符串而不是 GeoPandas 几何对象。如何将此列转换为 Geopandas 几何对象以便执行地理分析? 这是我的数据的
我从两台相同品牌的相机拍摄的两张图像相距一定距离,拍摄相同的场景。我想计算两个相机之间的真实世界旋转和平移。为了实现这一点,我首先提取了两个图像的 SIFT 特征并匹配它们。 我现在有了基本矩阵以及单
我目前正在使用 boost 几何/空间索引库,以便对 3d 边界框执行范围查询。例如,我能够获得与查询边界框重叠的所有边界框的列表。 文档 ( http://www.boost.org/doc/lib
boost::geometry::model::point 将点的维度作为编译时参数。例如, typedef bg::model::point point; 有没有什么方法可以在运行时指定维度,比如说
我一直在寻找一种在 three.js 中将 uv 映射添加到我的自定义几何体的方法。我找到了这样做的方法,但我找到的解决方案都没有用。谁能解释一下 uv-mapping 的工作原理以及如何正确使用它?
在我的应用程序中,用户可以使用 iPhone 的 GPS 定义足球场的三个角落,方法是一个接一个地走到角落,然后点击按钮。这很好用,我可以在屏幕上绘制生成的矩形,类似于它在 Google map 中的
我是一名优秀的程序员,十分优秀!