我能让标记/乳胶标签链接吗?(Jupyter笔记本)

2024-06-17 18:56:50 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

我希望某些标记是可点击的,这样它们就可以跳到相应的部分。例如我试过了

^{pr2}$

除了\href\url<a href=等,但它们都被呈现为文本的一部分,而不是作为可单击的超链接进行处理。在

这类事情是不支持的还是有解决办法的?在


Tags: of标记bytag笔记本jupyter降价end
2条回答

你猜怎么着?尽管我之前持怀疑态度,但事实证明,你实际上可以将降价单元格中的方程式链接到笔记本中的任何其他降价单元格。我想出了两种方法。它们都涉及到一些权衡,而且都是肮脏的黑客,所以你可能还是用我的另一个答案更好,但是这里是:

\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或其他有效的latex mathmode空白添加自己的间距。在

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

^{pr2}$

在包含加法和

$$\label{ihop}\tag{by induction hypothesis}$$

在细胞的某个地方有诱导假说。在

总之,这将为你的方程式添加看起来像标签的链接。\eqref宏的内容应该与相应的\label匹配,但是显示的链接文本将与标记的内容匹配。在

这是最后一个单元格中的a link to a live notebook online with some example ^{} links。在

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

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

如果您只是使用美元符号分隔符(即$<your-math-here>$)调用常规内联数学模式,那么您就可以使用[]()语法将每行末尾的\tags替换为markdown html链接:

$\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)

正如您所看到的,这种方法的一大缺点是,您必须执行所有自己的间距,包括复杂的对齐过程。您还可能发现,使用inlinemathmode呈现表达式的方式不如使用displaymathmode呈现它们的方式有吸引力(如在align中)。好的一面是,html链接在笔记本中似乎更受支持/更健壮,而且不需要重新加载就可以呈现它们。在

链接端点的语法如下:

<a id='dadd'></a>

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

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

因此,要使用他们的解决方案,您的工作流程如下:

  • 写一个笔记本,里面既有latex(真的是降价)和python单元格
    • 添加标签(最终将成为链接)作为你想要的乳胶
  • 通过执行所有python代码生成输出
  • 将最终结果转换为静态latex文件,使用上述答案中描述的技巧添加hyperref包

您的最终结果将是一个.pdf,其中包含来自markdown单元格的所有latex和笔记本中python单元格的所有源代码和输出。当然,明显的缺点是它不能直接执行python源代码。在

相关问题 更多 >