概述
简单的说呢,作者经常使用 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环境 无法复制粘贴图片解决所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复