我是靠谱客的博主 着急眼睛,最近开发中收集的这篇文章主要介绍Jupyter notebook LaTeX环境 无法复制粘贴图片解决,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

简单的说呢,作者经常使用 jupyter notebook 里一个 LaTeX 环境的插件,对于自己编写数学公式写入到 jupyter notebook 的 Markdown cell 里很有帮助。还有一些附加功能,比如会自动帮你预测 LaTeX 指令:textbf, textit 等。 还可以自动帮你 结束括号,引号 {}, "", $$ 等。其次,点一下工具栏的equation 就会自动帮你写 begin{equation} end{equation}... 还是比较方便的。

那么问题来了,在启用这个插件后,作者发现自己没有办法在 Markdown cell 里面复制粘贴图片。 我们都知道保存一个图片到一个路径,再用方程引用来显示图片很麻烦。 Jupyter notebook 是支持, CTRL +C 复制图片, 再CTRL+V 粘贴来直接显示图片的。

具体是通过在 Markdown cell 里粘贴,自动完成一行 ![Image.png](attachment:image.png) 来实现的。 可是在 LaTeX 这个插件启用的时候,![image]...会显示图片失效。

看了一眼Github, 原因是这个插件导致了 render 方法被覆盖。我们只需要在 jupyter notebook 的文件里找到 latex_envs.js 文件。该文件的路径应该是在 

$HOME/.local/share/jupyter/nbextensions/latex_envs/latex_envs.js

用文本编辑器在 function override_mdrenderer() 中找到这样一行代码:

html.find("a[href]").not('[href^="#"]').attr("target", "_blank");

在这行代码后直接添加下面几行后保存,就大功告成了:

// replace attachment:<key> by the corresponding entry
// in the cell's attachments
html.find('img[src^="attachment:"]').each(function (i, h) {
    h       = $(h);
    var key = h.attr('src').replace(/^attachment:/, '');

    if (that.attachments.hasOwnProperty(key)) {
        var att  = that.attachments[key];
        var mime = Object.keys(att)[0];
        h.attr('src', 'data:' + mime + ';base64,' + att[mime]);
    } else {
        h.attr('src', '');
    }
});

这样一来,可以在继续使用 LaTeX 环境的插件的同时,复制并粘贴图片了。

 

最后

以上就是着急眼睛为你收集整理的Jupyter notebook LaTeX环境 无法复制粘贴图片解决的全部内容,希望文章能够帮你解决Jupyter notebook LaTeX环境 无法复制粘贴图片解决所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部