epc的原因我给你分析了,你继续改细节吧,我先不合并补丁。
好的。 谢谢 现在已经正常了。
@manateelazycat 功能已经差不多了。我已经开始用了。还有两个小问题:
- 如果公式比较高,比如二分之一,下边的二会被遮挡。只要手工去网页上刷新一下,后面就再也没这个问题了。还没想明白是怎么回事。
- 光标离开buffer,公式不会自动消失。我还没想好怎么实现这个功能。
第一个问题,尝试把
self.web_window.resize(render_width * self.web_window.zoom_factor * 1.2,
render_height * self.web_window.zoom_factor)
改成
self.web_window.resize(render_width * self.web_window.zoom_factor * 1.2,
render_height * self.web_window.zoom_factor * 1.2)
因为我发现 katex-preview 这个 div 的大小不是窗口的全部,感觉窗口边框也占用一部分空间, 高度你可以乘以 1.2 试一下
第二个,你可以看看Emacs有啥 hook 的没? 如果 focus buffer 发生变化就隐藏窗口
1.2昨天已经试过了,没用。也改了CSS,仍然无效。很奇怪,刷新之后就没事了。
我一会儿去加个focus-buffer-hook试试
你先把其他问题都先解决了吧,如果只剩下‘要刷新一下才能’解决的问题,我估计是Katex.js的刷新函数是异步的,在render函数执行完成后立即获取 div 高度不准确。
你可以看看 katex render 有没有回调函数?或者简单加一个 timeout 来执行 offsetWidth/offsetHeight 获取。
目前就这两个问题了。我再去试试。应该跟你说的一样,还是resize那里不对头。
现在只剩最后一个问题了,分数公式显示还是不完整。
应该和CSS有关系,与resize没关系。只要重复执行pop_katex_window,更确切是重复执行两次
self.web_window.load_finish_callback = self.render_katex
self.web_window.webview.setUrl(QUrl.fromLocalFile(index_file))
就能显示正常。我试过直接
self.web_window.webview.page().runJavaScript(
'''katex.render("{}"'''.format(self.latex_string) + ", document.getElementById('katex-preview'), {throwOnError: false,displayMode: true});document.getElementById('katex-preview').style.display='inline';document.getElementById('katex-preview').style.padding = '0px';" )
也没效果。大佬有什么看法?
最新的代码已经推送了。
@manateelazycat 现在只剩最后一个问题了,分数公式显示还是不完整。
应该和CSS有关系,与resize没关系。只要重复执行pop_katex_window,更确切是重复执行两次
self.web_window.load_finish_callback = self.render_katex
self.web_window.webview.setUrl(QUrl.fromLocalFile(index_file))
就能显示正常。我试过直接
self.web_window.webview.page().runJavaScript(
'''katex.render("{}"'''.format(self.latex_string) + ", document.getElementById('katex-preview'), {throwOnError: false,displayMode: true});document.getElementById('katex-preview').style.display='inline';document.getElementById('katex-preview').style.padding = '0px';" )
也没效果。大佬有什么看法?
最新的代码已经推送了。
现在是获取 katex-preview div大小,你直接改成body这个element元素呢?要查一下获取body元素的js代码
我盲猜是,seturl会强制让整个网页重新绘制,而简单katex render不会在公式变高的时候撑大document高度
不是document高度不够,四边的padding还是很明显的,只是分母被遮住了。感觉是overflow: hidden惹的祸。
现在好了吗?
没。白天我再抽空试试。现在正常使用没问题了。就这一个小毛病。
要半夜了,最近比较忙。
不急。我还在整。
好棒,那是不是也能实时显示 mermaid?
还有,不知道能否嵌入到文本中,这样,就可以动态的显示任意web内容了,视频,音乐都可以内嵌到org中。
现在还不能嵌入内容
有html2image,可以将把latex公式嵌进去。
其他的需要截取一张图片,点击图片打开网址就行了吧。
他说的是网页控件和emacs文字交错混合排版,插入图片现在org-mode就可以