我可以在markdown / Latex中制作标签吗? (Jupyter笔记本)

时间:2018-03-29 03:28:48

标签: python hyperlink latex markdown jupyter-notebook

我有一个Jupyter笔记本,我的单元格包含这样的降价:

\begin{align}
0 + S(a) &= S(0 + a) \tag{by definition of addition} \\
         &= S(a) \tag{by induction hypothesis}
\end{align}

我希望某些标签可以点击,以便跳转到相应的部分。例如,我试过

\tag{[by definition of addition](#def_addition)}

\href\url<a href=等外,它们都会作为文字的一部分呈现,而不是作为可点击的超链接处理。

这种事情是不受支持还是有解决方法?

2 个答案:

答案 0 :(得分:1)

原来已经有一个answer,涵盖了如何在Jupyter中发出\usepackage语句。但是现在我已经详细阅读了它,它实际上涵盖了在将笔记本转换为实际适当的乳胶文件的过程中如何向笔记本添加.pdf指令。这不是你想要的,但它可能是你能做的最好的。

因此,要使用他们的解决方案,您的工作流程将是这样的:

  • 写一个包含latex(markdown,really)和python单元格的笔记本
    • 添加标签(最终会成为链接),因为您需要乳胶
  • 通过执行所有python代码生成输出
  • 将最终结果转换为静态乳胶文件,使用上述答案中描述的技巧添加hyperref包

您的最终结果将是src,其中包含来自markdown单元格的所有胶乳以及笔记本中python单元格的所有源和输出。当然明显的缺点是它无法直接执行python源。

答案 1 :(得分:0)

猜猜是什么?尽管我早先持怀疑态度,但事实证明你实际上可以从降价单元格中的方程式链接到笔记本中的任何其他降价单元格。我想出了两种方法。他们都涉及一些权衡,他们都是一种肮脏的黑客,所以你可能仍然会更好地与我的其他答案,但在这里:

交换\eqref

\tag

首先,使用\tag替换等式中的\eqref命令:

\begin{align}
0 + S(a) &= S(0 + a) \quad\quad\quad\quad \eqref{dadd} \\
         &= S(a) \quad\quad\quad\quad \eqref{ihop}
\end{align}

请注意,如上例所示,您必须使用\quad或其他有效的乳胶数学模型空格之一添加自己的间距。

完成后,将组合标签/标签添加到笔记本中的任何其他降价单元格:

$$\label{dadd}\tag{by definition of addition}$$

单元格中的某个位置,其中包含加法和

的定义
$$\label{ihop}\tag{by induction hypothesis}$$

在细胞中某处持有诱导假说。

这将共同添加指向标签的方程式链接。 \eqref宏的内容应与相应的\label的内容相匹配,但显示的链接文本将与该标记的内容相匹配。

这是最后一个单元格中的a link to a live notebook online with some example \eqref links

另一个警告:为了获得渲染链接,您必须保存笔记本并重新加载运行它的浏览器,可能至少几次。

\tag替换为html链接,并使用$...$代替align

如果您只是使用美元符号分隔符(即align)调用常规内联数学模式,而不是将方程式包装在$<your-math-here>$环境中,则可以替换\tags at []()每行使用$\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad 0 + S(a) = S(0 + a) \qquad\qquad\qquad\qquad$ [(by definition of addition)](#dadd) $\;\quad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad = S(a) \qquad\qquad\qquad\qquad\quad$ [(by induction hypothesis)](#ihop) 语法标记markdown html链接的结尾:

align

正如您所看到的,这种方法的一大缺点是您必须完成所有自己的间距,包括对齐的繁琐过程。您还可能会发现使用内联数学模式渲染方程式的方式不如使用display mathmode进行渲染(如<a id='dadd'></a> 中)。从好的方面来说,html链接在笔记本中看起来更加支持/健壮,你不需要重新加载它们来呈现它们。

链接端点的语法如下:

DateTime

这是最后一个单元格中的another link to a live notebook online with some example html equation links